安裝lasticsearch 6.3.0常見錯誤
lasticsearch 6.3.0 安裝過程中遇到了一些問題,通過查詢資料幾乎都解決掉了,這裡簡單記錄一下 ,供以後查閱參考,也希望可以幫助遇到同樣問題的你。
一、錯誤1:核心過低
我們使用的是centos6,其linux核心版本為2.6。而Elasticsearch的外掛要求至少3.5以上版本。不過沒關係,我們禁用這個外掛即可。
修改elasticsearch.yml檔案,在最下面新增如下配置:
bootstrap.system_call_filter: false
然後重啟
二、錯誤2:檔案許可權不足
再次啟動,又出錯了:
[1]: max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
我們用的是leyou使用者,而不是root,所以檔案許可權不足。
首先用root使用者登入。
然後修改配置檔案:
vim /etc/security/limits.conf
新增下面的內容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
三、錯誤3:執行緒數不夠
剛才報錯中,還有一行:
[1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]
這是執行緒數不夠。
繼續修改配置:
vim /etc/security/limits.d/90-nproc.conf
修改下面的內容:
* soft nproc 1024
改為:
* soft nproc 4096
四、錯誤4:程序虛擬記憶體
[3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
vm.max_map_count:限制一個程序可以擁有的VMA(虛擬記憶體區域)的數量,繼續修改配置檔案, :
vim /etc/sysctl.conf
新增下面內容:
vm.max_map_count=655360
然後執行命令:
sysctl -p
所有錯誤修改完畢,一定要重啟你的終端,否則配置無效。
其他常見錯誤:
1、unable to install syscall filter:Java.lang.UnsupportedOperationException:seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMPandCONFIG_SECCOMP_FILTERcompiledinatorg.elasticsearch.bootstrap.Seccomp.linuxImpl(Seccomp.java:349)[elasticsearch-5.0.0.jar:5.0.0]at org.elasticsearch.bootstrap.Seccomp.init(Seccomp.java:630) ~[elasticsearch-5.0.0.jar:5.0.0]
原因:主要是linux的版本過低
解決方案:
重新安裝新版本的linux系統
2、ERROR: bootstrap checks failed:max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
原因:無法建立本地檔案問題,使用者最大可建立檔案數太小
解決方案:
切換到root使用者,編輯limits.conf配置檔案, 新增類似如下內容:
vi /etc/security/limits.conf
新增如下內容:
- soft nofile 65536
- hard nofile 131072
- soft nproc 2048
- hard nproc 4096
備註:* 代表Linux所有使用者名稱稱(比如hadoop)
儲存、退出、重新登入才可生效
3、max number of threads [1024] for user [es] likely too low, increase to at least [2048]
原因:無法建立本地執行緒問題,使用者最大可建立執行緒數太小
解決方案:
切換到root使用者,進入limits.d目錄下,修改90-nproc.conf 配置檔案。
vi /etc/security/limits.d/90-nproc.conf
修改 * soft nproc 1024 為 * soft nproc 2048
4、max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
原因:最大虛擬記憶體太小
解決方案:
切換到root使用者下,修改配置檔案sysctl.conf
vi /etc/sysctl.conf
新增下面配置:vm.max_map_count=655360
並執行命令:sysctl -p
5、ElasticSearch啟動找不到主機或路由
原因:ElasticSearch 單播配置有問題
解決方案:檢查ElasticSearch中的配置檔案
vi config/elasticsearch.yml
注意此配置格式
discovery.zen.ping.unicast.hosts:[“192.168..:9300”,“192.168..:9300”]
6、org.elasticsearch.transport.RemoteTransportException: Failed to deserialize exception response from stream
原因:ElasticSearch節點之間的jdk版本不一致
7、Unsupported major.minor version 52.0
原因:jdk版本太低
解決方案:elasticsearch5.0.0支援jdk1.8.0
8、bin/elasticsearch-plugin install license ERROR: Unknown plugin license
原因:ElasticSearch5.0.0以後外掛命令已經改變
解決方案:bin/elasticsearch-plugin install x-pack
9、啟動異常:ERROR: bootstrap checks failed system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
原因:因為Centos6不支援SecComp,而ES5.2.1預設bootstrap.system_call_filter為true進行檢測,所以導致檢測失敗,失敗後直接導致ES不能啟動。
解決方案:在elasticsearch.yml中配置bootstrap.system_call_filter為false,注意要在Memory下面
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
10、格式問題:Exception in thread “main” 2017-11-10 06:29:49,106 main ERROR No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property ‘log4j2.debug’ to show Log4j2 internal initialization logging.ElasticsearchParseException[malformed, expected settings to start with ‘object’, instead was [VALUE_STRING]]
原因:elasticsearch.yml中的配置項的格式有問題
解決方案:請儘量保持冒號前面沒空格,後面一個空格,不要用tab鍵
bootstrap.memory_lock: false
11、ES啟動報錯:bootstrap checks failed
禁用:在elasticsearch.yml中配置bootstrap.system_call_filter為false,注意要在Memory下面
bootstrap.memory_lock:false
bootstrap.system_call_filter:false