------------恢復內容開始------------
我這里是單點配置在CentOS上的,沒有部署集群。
首先,elasticsearch不支持root用戶操作,因此需要創建其他的linux用戶進行操作。
啟動elasticsearch之前應保證虛擬機上已安裝JDK。
1. Permission denied
用戶沒有權限打開 log 文件:
Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file logs/gc.log due to Permission denied Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.nio.file.AccessDeniedException: /home/ekia/elasticsearch/config/elasticsearch.keystore
解決措施:
切換至root用戶,對當前文件夾執行 chmod 777 -R 指令賦予權限。
( ekia 為 elasticsearch 文件所在目錄)
[root@localhost ekia]# chmod 777 -R elasticsearch/
2. max file descriptors [4096] for elasticsearch process is too low
用戶擁有的可創建文件權限太低
解決措施:
使用root用戶修改以下文件
vim /etc/security/limits.conf
增加以下內容:
soft nofile 65536
hard nofile 65536
soft nproc 4096
hard nproc 4096
之后修改另一個配置文件:
vim /etc/sysctl.conf
增加以下內容:
fs.file-max = 100000
並執行下列代碼使新配置生效:
# sysctl -p
3. max number of threads is too low
用戶可用的最大線程數太少了
解決措施:
使用root用戶修改 /etc/security/limit.d/20-nproc.conf 文件
(我這里前兩行是系統自帶的,第三行一定要手動添加,我最終問題就是出現在了第三行。這里感謝一下https://elasticsearch.cn/question/3915里的回答。)
* soft nproc 4096 root soft nproc unlimited * hard nproc 4096
4. 啟動后通過虛擬機ip地址:9200無法訪問
修改 elasticsearch/config/elasticsearch.yml 中的內容
network.host=0.0.0.0
目前為止踩了這些坑然后就可以啟動啦