1. 程式人生 > >CentOS7上ElasticSearch安裝填坑記

CentOS7上ElasticSearch安裝填坑記

Spring ElasticSearch

技術分享圖片


下載elastic search 5.3.0

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz
mv elasticsearch-5.3.0.tar.gz /opt
cd /opt
tar -xzvf elasticsearch-5.3.0.tar.gz
cd elasticsearch-5.3.0/

啟動ES

cd /bin
./elasticsearch

按照道理應該就可以了,然而接下來各種坑一一出現,分別闡述

錯誤1error=‘Cannot allocate memory‘ (errno=12)

技術分享圖片

solutions:
由於elasticsearch5.0默認分配jvm空間大小為2g,需要改小一點

vim config/jvm.options  
-Xms2g  →  -Xms512m
-Xmx2g  →  -Xmx512m

錯誤2: can not run elasticsearch as root

技術分享圖片

solutions:
在 Linux 環境中,elasticsearch 不允許以 root 權限來運行!所以需要創建一個非root用戶,以非root用戶來起es

groupadd elk  # 創建用戶組elk
useradd elk -g elk -p 111111  # 創建新用戶elk,-g elk 設置其用戶組為 elk,-p 111 設置其密碼6個1
chown -R elk:elk /opt  # 更改 /opt 文件夾及內部文件的所屬用戶及組為 elk:elk
su elk # 切換到非root用戶elk下來

錯誤3:(1) max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
(2) max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

此錯誤出現在修改config/elasticsearch.yml中的network.host為network.host: 0.0.0.0以便讓外網任何IP都能來訪問時。

solutions:
切換到root用戶,然後

vim /etc/security/limits.conf
* soft nofile 300000
* hard nofile 300000
* soft nproc 102400
* soft memlock unlimited
* hard memlock unlimited

技術分享圖片

錯誤4:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

技術分享圖片

solutions:
先要切換到root用戶;
然後可以執行以下命令,設置 vm.max_map_count ,但是重啟後又會恢復為原值。

sysctl -w vm.max_map_count=262144

持久性的做法是在 /etc/sysctl.conf 文件中修改 vm.max_map_count 參數:

echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p

技術分享圖片

最後終於在外網訪問成功:

技術分享圖片


安裝可視化插件 elasticsearch-head

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install   # 此處我試圖用cnpm install有問題,用npm可以
npm run start 

技術分享圖片

然後在外網訪問http://你的安裝機IP:9100

技術分享圖片


最後實際簡單測試一下

新建 Index,可以直接向 Elastic 服務器發出 PUT 請求。下面的例子是新建一個名叫weather的 Index。

技術分享圖片

然而刷新elasticsearch-head可視化界面可以看到索引已經成功插入

技術分享圖片

後記

關於作者更多的elastic search實踐在此

CentOS7上ElasticSearch安裝填坑記