注:elasticsearch需要jdk8以上的環境,需要先安裝有jdk8以上,才能運行。
錯誤1:不能以root用戶運行
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125)
注:出於安全考慮,elasticsearch默認不允許以root賬號運行。故需要創建一個用戶
解決辦法:
創建用戶,切換到創建的用戶,再運行。
下面這個鏈接,第二步中 有詳細centos7創建用戶,用戶組配置的過程。
centos7安裝 Elasticsearch鏈接:https://blog.csdn.net/qq_41357211/article/details/99991666
錯誤2:文件權限不夠
ERROR: [2] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
這是切換自己創建的用戶后運行時,因為不是root,所以文件權限不夠。
解決辦法:
先切換到root用戶登錄,然后修改配置文件:
[root@localhost bin]# vim /etc/security/limits.conf
配置文件中添加以下內容: (注意帶*)
* soft nofile 65536 * hard nofile 131072 * soft nproc 4096 * hard nproc 4096
記得修改完,先切換到自己創建的用戶,再運行elasticsearch , reboot重啟生效
錯誤3:用戶擁有的內存權限太小,至少least [262144]
ERROR: [1] bootstrap checks failed [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解決辦法:
先切換到root用戶下,然后執行修改配置文件
( 沒有這個文件的話:root用戶下vim會自動創建一個新的;自己創建的用戶下,不額外配置的話,vim沒有權限創建 )
所以說,先切換到root用戶下
[root@localhost bin]$ su root
[root@localhost bin]$ vim /etc/sysctl.conf
文件中添加以下內容:
vm.max_map_count=655360
然后執行命令:
sysctl ‐p
記得修改完,先切換到自己創建的用戶,再運行elasticsearch
錯誤4:線程數不夠 [1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]
先切換到root用戶下,然后執行修改配置文件
[root@localhost bin]$ vim /etc/security/limits.d/90‐nproc.conf
修改文件中內容:
* soft nproc 1024
改為:
* soft nproc 4096
錯誤5:權限不足
2019-08-22 03:16:26,465 main ERROR RollingFileManager (/home/leyou/elasticsearch/logs/elasticsearch.log) java.io.FileNotFoundException: /home/leyou/elasticsearch/logs/elasticsearch.log (權限不夠) java.io.FileNotFoundException: /home/leyou/elasticsearch/logs/elasticsearch.log (權限不夠)
解決辦法:
切換到root用戶下,再cd 到 elasticsearch安裝目錄下,進行用戶授權
# 修改elasticsearch用戶組在當前目錄下的權限(帶點)
[root@localhost elasticsearch]# chgrp -R elasticsearch .
# 修改leyou用戶在當前目錄下的權限(帶點)
[root@localhost elasticsearch]# chown -R leyou .
錯誤6:內核過低
unable to install syscall filter: java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with
該錯誤發生在centos6或低版本系統,elasticsearch的插件要求linux內核至少3.5以上系統。
解決辦法:
修改conf目錄下的elasticsearch.yml,在文件最下面添加配置:
bootstrap.system_call_filter: false
重啟即可。
原文鏈接:https://blog.csdn.net/qq_41357211/article/details/100011139