Elasticsearch 7.10:如何安全地删除节点并释放 space?
Elasticsearch 7.10 : How to safely remove a node and free up space?
由于我 运行 磁盘空间不足 space,我想从节点中删除所有索引。请注意,我只有一个节点,我是 运行 本地计算机上的弹性服务器。
基本上,当我启动弹性服务器时,它会失败并显示以下日志 -
[2020-12-13T22:06:51,839][WARN ][o.e.c.r.a.DiskThresholdMonitor] [sedna] flood stage disk watermark [95%] exceeded on [k7t835EJQ6KzPu-7a-aW8Q][sedna][/home/ssahoo/elasticsearch-7.10.0/data/nodes/0] free: 879mb[0.8%], all indices on this node will be marked read-only
在终端上出现以下错误 -
Could not rename log file 'logs/gc.log' to 'logs/gc.log.05' (Reserved).
(base) ssahoo@sedna:~/elasticsearch-7.10.0$ [2020-12-14T17:07:17,831][WARN ][stderr ] [sedna] Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.io.IOException: Input/output error
2020-12-14 17:07:17,848 main ERROR Unable to move file /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch_server.json to /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.json: java.nio.file.FileSystemException /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch_server.json -> /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.json: Disk quota exceeded
2020-12-14 17:07:17,852 main ERROR Unable to copy file /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch_server.json to /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.json: java.nio.file.FileSystemException /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.json: Disk quota exceeded
2020-12-14 17:07:17,857 main ERROR Unable to move file /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch.log to /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.log: java.nio.file.FileSystemException /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch.log -> /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.log: Disk quota exceeded
2020-12-14 17:07:17,861 main ERROR Unable to copy file /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch.log to /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.log: java.nio.file.FileSystemException /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.log: Disk quota exceeded
[2020-12-14T17:07:17,863][WARN ][stderr ] [sedna] Likely root cause: java.io.IOException: Input/output error
[2020-12-14T17:07:17,864][WARN ][stderr ] [sedna] at java.base/java.io.FileDescriptor.close0(Native Method)
[2020-12-14T17:07:17,864][WARN ][stderr ] [sedna] at java.base/java.io.FileDescriptor.close(FileDescriptor.java:297)
因此我想通过删除所有索引和节点来释放 space。那么如何删除我拥有的单个节点?
或者我可以问一下你的建议是什么来克服这个问题吗?我买不起额外的磁盘 space,这是我的主要制约因素。
谢谢。
I want to remove all the indices from the node
为了从节点中删除 all
个索引,获取索引列表,然后对每个索引调用 delete
。
例如
for i in $(curl -s -u user:password -XGET "<your_es_host_name>:9200/_cat/indices?s=index&h=index"); do echo "deleting Index --> $i"; curl -s -u user:password -XDELETE "< your_es_host_name>:9200/$i"; done
这将删除您的所有索引。如果你想排除某些索引,你可以修改代码以排除像 "<your_es_host_name>:9200/_cat/indices?s=index&h=index | grep -v exclude_index"
.
这样的索引
希望这对您有所帮助。
由于我 运行 磁盘空间不足 space,我想从节点中删除所有索引。请注意,我只有一个节点,我是 运行 本地计算机上的弹性服务器。
基本上,当我启动弹性服务器时,它会失败并显示以下日志 -
[2020-12-13T22:06:51,839][WARN ][o.e.c.r.a.DiskThresholdMonitor] [sedna] flood stage disk watermark [95%] exceeded on [k7t835EJQ6KzPu-7a-aW8Q][sedna][/home/ssahoo/elasticsearch-7.10.0/data/nodes/0] free: 879mb[0.8%], all indices on this node will be marked read-only
在终端上出现以下错误 -
Could not rename log file 'logs/gc.log' to 'logs/gc.log.05' (Reserved).
(base) ssahoo@sedna:~/elasticsearch-7.10.0$ [2020-12-14T17:07:17,831][WARN ][stderr ] [sedna] Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.io.IOException: Input/output error
2020-12-14 17:07:17,848 main ERROR Unable to move file /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch_server.json to /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.json: java.nio.file.FileSystemException /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch_server.json -> /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.json: Disk quota exceeded
2020-12-14 17:07:17,852 main ERROR Unable to copy file /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch_server.json to /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.json: java.nio.file.FileSystemException /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.json: Disk quota exceeded
2020-12-14 17:07:17,857 main ERROR Unable to move file /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch.log to /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.log: java.nio.file.FileSystemException /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch.log -> /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.log: Disk quota exceeded
2020-12-14 17:07:17,861 main ERROR Unable to copy file /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch.log to /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.log: java.nio.file.FileSystemException /home/ssahoo/elasticsearch-7.10.0/logs/elasticsearch-2020-12-13-1.log: Disk quota exceeded
[2020-12-14T17:07:17,863][WARN ][stderr ] [sedna] Likely root cause: java.io.IOException: Input/output error
[2020-12-14T17:07:17,864][WARN ][stderr ] [sedna] at java.base/java.io.FileDescriptor.close0(Native Method)
[2020-12-14T17:07:17,864][WARN ][stderr ] [sedna] at java.base/java.io.FileDescriptor.close(FileDescriptor.java:297)
因此我想通过删除所有索引和节点来释放 space。那么如何删除我拥有的单个节点?
或者我可以问一下你的建议是什么来克服这个问题吗?我买不起额外的磁盘 space,这是我的主要制约因素。
谢谢。
I want to remove all the indices from the node
为了从节点中删除 all
个索引,获取索引列表,然后对每个索引调用 delete
。
例如
for i in $(curl -s -u user:password -XGET "<your_es_host_name>:9200/_cat/indices?s=index&h=index"); do echo "deleting Index --> $i"; curl -s -u user:password -XDELETE "< your_es_host_name>:9200/$i"; done
这将删除您的所有索引。如果你想排除某些索引,你可以修改代码以排除像 "<your_es_host_name>:9200/_cat/indices?s=index&h=index | grep -v exclude_index"
.
希望这对您有所帮助。