elasticsearch常见错误解决办法
es常見問題
- 1、elasticsearch 啟動報錯 max virtual memory areas vm.max_map_count [65530] is too low, increase to at leas
- 1.1、問題原因
- 1.2、解決辦法
- 2、Elasticsearch exception [type=cluster_block_exception, reason=blocked by: [FORBIDDEN/12/index read-only/ allow delete (api)];]
- 2.2、問題原因
- 2.2、解決辦法
- 3、bootstrap checks failed
- 3.1 解決辦法
1、elasticsearch 啟動報錯 max virtual memory areas vm.max_map_count [65530] is too low, increase to at leas
1.1、問題原因
字面意思,vm.max_map_count這個參數太小,應該至少調整到262144,首先看一下這個參數是干啥的吧。這個參數的解釋,來自
https://www.jianshu.com/p/4f031b5366df
的原文:
“This file contains the maximum number of memory map areas a process may have. Memory map areas are used as a side-effect of calling malloc, directly by mmap and mprotect, and also when loading shared libraries.
While most applications need less than a thousand maps, certain programs, particularly malloc debuggers, may consume lots of them, e.g., up to one or two maps per allocation.
The default value is 65536.”
翻譯:
max_map_count文件包含限制一個進程可以擁有的VMA(虛擬內存區域)的數量。虛擬內存區域是一個連續的虛擬地址空間區域。在進程的生命周期中,每當程序嘗試在內存中映射文件,鏈接到共享內存段,或者分配堆空間的時候,這些區域將被創建。調優這個值將限制進程可擁有VMA的數量。限制一個進程擁有VMA的總數可能導致應用程序出錯,因為當進程達到了VMA上線但又只能釋放少量的內存給其他的內核進程使用時,操作系統會拋出內存不足的錯誤。如果你的操作系統在NORMAL區域僅占用少量的內存,那么調低這個值可以幫助釋放內存給內核用。
1.2、解決辦法
解決辦法來自
https://blog.csdn.net/jiankunking/article/details/65448030
1、切換到root用戶修改配置sysctl.conf
vi /etc/sysctl.conf2、添加 vm.max_map_count=655360,并運行如下命令
sysctl -p3、然后,重新啟動elasticsearch,即可啟動成功。
2、Elasticsearch exception [type=cluster_block_exception, reason=blocked by: [FORBIDDEN/12/index read-only/ allow delete (api)];]
或者類似如下錯誤
{"error": {"root_cause": [{"type": "cluster_block_exception","reason": "index [blog1] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"}],"type": "cluster_block_exception","reason": "index [blog1] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"},"status": 403 }2.2、問題原因
索引是只讀狀態。需要變更為非只讀狀態
2.2、解決辦法
執行
curl -XPUT -H "Content-Type: application/json" http://127.0.0.1:9200/你的索引名稱/_settings -d '{"index.blocks.read_only_allow_delete": null}'或者直接在postman發送http請求如下:
PUT http://127.0.0.1:9200/索引名稱/_settings { "index.blocks.read_only_allow_delete": null }3、bootstrap checks failed
the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
3.1 解決辦法
在 elasticsearch.yml 配置文件中 添加:
cluster.initial_master_nodes: ["node-1"]其中 node-1 為elasticsearch.yml 配置文件上面配置的 node.name 的值
總結
以上是生活随笔為你收集整理的elasticsearch常见错误解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记一次继承了AbstractAuthen
- 下一篇: 记一次@ResponseBody注解不生