elasticsearch 單節點搭建與爬坑記錄 prepare 虛擬機或者雲伺服器(這裡用的是阿裡雲ECS) linux centos7 安裝完畢的jdk 相應的安裝包(在https://www.cnblogs.com/G-Aurora/p/13099459.html中有快速下載的鏡像站) ps. ...
elasticsearch 單節點搭建與爬坑記錄
prepare
-
虛擬機或者雲伺服器(這裡用的是阿裡雲ECS)
-
linux---centos7
-
安裝完畢的jdk
-
相應的安裝包(在https://www.cnblogs.com/G-Aurora/p/13099459.html中有快速下載的鏡像站)
-
ps.下文主要指出主要註意的地方,步驟按照標註的數字來即可(編寫此文時使用的是市面上多數新版參考書所使用的Elasticsearch5.x版)
用戶組
首先需要高度關註的是文件夾的“歸屬”和許可權。
Elasticsearch在Linux下只能通過root用戶啟動。並且為了儘量避免解壓縮後再次回頭修改文件夾的”歸屬“,我建議使用新建的用戶解壓安裝包,這樣解壓縮後的文件夾的歸屬就直接歸屬於新用戶。
-
創建新用戶
詳見:
-
解壓縮安裝包
啟動前修改參數
我個人的建議是要根據自己機器的實際情況判斷是否需要更改,不足的就改,有餘的可以不改(以root用戶修改)
vim /etc/security/limits.conf
增加最大文件數
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
拓展閱讀:https://www.cnblogs.com/youngerger/p/9128245.html
所有配置完成後啟動出現:
ERROR: bootstrap checks failed
max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
那是因為配置沒有生效,我們可以使用
ulimit -Hn
來進行檢驗,如果小於等於65535,那麼通過
ulimit -Hn 65536
使配置生效,再次使用ulimit -Hn進行檢驗即可
哈哈,但是還是有可能報相同的錯誤
例如在我的啟動過程中,我是使用xshell同時開了為root和es兩個用戶開了兩個視窗,當我在root下修改了limits.conf並ulimit -Hn 65536後,分別使用root和es使用ulimit -Hn進行檢驗,發現兩個用戶的返回結果不一樣,es的還是預設的65535
此時你可以選擇
- 重啟
- 在返回了已更改的ulimit -Hn結果的用戶下(root),切換為es再進行啟動,(當然後面的配置要完成)。Great,you get it.
vim /etc/security/limits.conf/90-nproc.conf
增大最大進程數
* soft nproc 2048 //修改,而非添加
在我的ECS機器上只發現了20-nproc.conf文件,配置參數有餘,而且應該不用手動創建90-nporoc.conf文件(後來事實證明也是如此)
拓展閱讀:https://yq.aliyun.com/articles/238584
對於拓展文章的拓展:https://www.cnblogs.com/ftl1012/p/ulimit.html
需要考慮修改nproc的情況 :
- Cannot create GC thread. Out of system resources
- java.lang.OutOfMemoryError: unable to create new native thread
vim /etc/sysctl.conf
增加虛擬記憶體
vm.max_map_count=655360
記得
sysctl -p
啟動
在es用戶下進入elasticsearch/bin
使用
elasticsearch
即可啟動
檢驗
-
通過curl
curl -XGet 'http://localhost:9200/'
-
任意用戶使用jps
解決只能通過localhost+埠訪問的問題
https://www.cnblogs.com/G-Aurora/p/13111162.html