1、解壓
tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz
2、設置
(1)config/elasticsearch.yml
默認為127.0.0.1,只能在本地訪問ES服務器。
需要將ip改為實際IP或者0.0.0.0,這樣外部(其它機器)也能訪問ES服務器。
ES使用的端口默認是9200,也可以修改為其它的。
需要配置集群的初始節點:只有一個節點,也算是集群。
數組中寫節點名,節點名默認是node-1,集群時要改節點名:
一般是node-1,node-2,node-n來命名。
如果不配置集群的初始節點,會報錯:未配置集群的初始節點,集群的初始節點至少為1個
(2)在防火牆中開放對應的端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent firewall-cmd --reload
(3)config/jvm.options
ES依賴JDK,自帶了JDK,在解壓目錄下有一個jdk目錄,自帶的jdk往往是最新版本的jdk。
因為ES處理的數據量級很大,默認設置的JVM占用的內存也就很大(默認1g),我們的機器|虛擬機往往提供不了指定大小的內存,我們可以改小一點
最大堆內存、最小堆內存的值要相同。
如不設置,往往會報錯:內初不夠、空間不足。
(4)修改可打開的文件描述符數量
ES本身很吃資源,要求能打開的文件描述符數量至少是65536,而Linux默認一個登錄的用戶可打開的文件描述符數量是4096,需要改一下。
需要先切換到root用戶,因為我們要修改的文件默認是只讀的,需要root的權限。
vim /etc/security/limits.conf
加上2行:
* soft nofile 65536 * hard nofile 65536
*表示Linux的所有用戶,也可以換為:要用來啟動ES的用戶(不能用root來啟動)。
#End of file 官方不是寫着玩的,文件至此結束,后面的內容不識別(無效),我們添加的配置要放在這個注釋的前面。
查看此配置是否成功:先切換到要啟動ES的用戶
ulimit -Hn
如果是65536就說明配置成功。
若未配置此項,會報錯:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
(5)修改vm.max_map_count
默認為65530,ES要求至少為262144
sysctl -w vm.max_map_count=262144
此句命令需要root權限,可以先切換到root,或者以sudo執行
若未配置此項,會報錯:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
(6)權限配置
ES不能用root賬戶啟動,如果使用root賬號啟動ES,會報錯:can not run elasticsearch as root
需要使用非root賬戶啟動,如果沒有其他賬號,可以添加一個:
useradd 用戶名
passwd 密碼
啟動ES的賬號需要有解壓目錄的操作權限,所以需要配置一下解壓目錄的用戶權限:先切換到root(解壓目錄的屬主)
chmod 777 -R elasticsearch-7.6.2 #解壓目錄的路徑要換為自己的,可以是相對路徑,也可以是絕對路徑
若不配置解壓目錄的權限,會報錯:AccessDeniedException 沒有相關權限
3、啟動
切換到解壓目錄下,運行bin目錄下的elasticsearch即可啟動ES服務器
./bin/elasticsearch #這樣啟動,當前標簽頁會用不了,需要重啟一個標簽頁來執行命令。可以在后面加上 -d 以守護線程的方式啟動
es很吃資源,啟動很慢。
新起一個標簽頁,執行
curl 127.0.0.1:9200
也可以在瀏覽器中輸入ip:port進行驗證。如果看到以下內容,說明ES啟動成功:
127.0.0.1:9200/_cat,_cat目錄是ES自帶的一些功能:
常用的有
- master 查看master節點的信息
- nodes 查看所有節點的信息,比如ip、堆使用情況、內存使用情況、cpu使用情況等。如果不知道這些列表示什么,nodes?v,加一個v會顯示列名。
- health 查看各節點的運行狀況,green表示該節點正常運行(健康)
4、停止
ps -ef|grep elasticsearch
第一列數字是pid, kill 相關的pid,結束進程。會顯示一大堆,只kill第一個就ok。