本文介紹Linux環境如何安裝Elasticsearch.
本文環境是在騰訊雲服務器CentOS7.2搭建的,JDK1.8,elasticsearch-5.4.2。
1 安裝JDK
網上教程很多,也可以參考本人教程之前寫的Linux安裝JDK
2 安裝Elasticsearch
2.1 創建elasticsearch目錄
cd /usr/local/
mkdir tool
cd tool
mkdir elasticsearch
cd elasticsearch
2.1 下載Elasticsearch
2.1.1 在剛剛創建好的文件夾內下載Elasticsearch(以下簡稱es)
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.2.tar.gz
2.1.2 解壓es包
tar -xvf elasticsearch-5.4.2.tar.gz
2.1.3 進入es/bin包
cd elasticsearch-5.4.2/bin
2.1.4 啓動es
./elasticsearch
2.2 解決問題
2.2.1 問題一
直接啓動,遇到如圖問題,如下:
這個問題是由於內存分配不夠造成的,修改適合本機的內存,修改文件config/jvm.options
vi ../config/jvm.options
修改如下位置
由於我的服務器內存較小,修改爲512m,具體可以根據情況修改,如下:
修改後在次啓動:
./elasticsearch
2.2.2 問題二
出現如下錯誤:
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
如圖
這個問題很明顯,不允許使用root用戶啓動,那麼我們新建一個es用戶,並賦予權限:
添加es用戶
useradd es
添加es用戶密碼
passwd es
將文件夾elasticsearch-5.4.2賦予es權限
chown -R es:es /usr/local/tool/elasticsearch/elasticsearch-5.4.2
切換爲es用戶
su es
再次啓動es
./elasticsearch
這次啓動成功了,我們在使用一個窗口登錄root用戶,輸入命令:
curl -X GET http://localhost:9200
如圖所示,可以成功訪問
2.2.3 問題三
在瀏覽器訪問http://118.24.242.170:9200/拒絕訪問(118.24.242.170爲服務器ip)
使用root用戶,打開elasticsearch.yml文件,如下:
vi /usr/local/tool/elasticsearch/elasticsearch-5.4.2/config/elasticsearch.yml
文件內增加如下代碼
network.host: 0.0.0.0
使用es用戶啓動,發現又出現了錯誤如下,得到錯誤信息如圖
使用root用戶打開如下文件:
vim /etc/sysctl.conf
添加如下配置:
vm.max_map_count = 655360
使配置生效
/sbin/sysctl -p
然後使用es用戶啓動Elasticsearch,這次可以成功啓動了,如果需要後臺啓動的話,在啓動命令後加&,如下所示:
./elasticsearch &
總結
以上全是本人踩坑實踐得到的,親測可用。