ES啟動常見錯誤
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不能啟動。詳見 :https://github.com/elastic/elasticsearch/issues/22899 解決方案:在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