Elasticsearch安裝部署
版本信息
Vmware虛擬機
Centos 6.7
JDK à 1.8或以上版本
ES à 5.5.2
nodeJSà6.0以上(啟動elasticsearch-head插件用)
1.2 安裝流程
1.2.1 下載ES版本, 解壓, 即可使用, ./bin/elasticsearch -d便可在後臺開始elasticsearch
1) 將elasticsearch安裝包拷貝到相應的目錄
[rodge@centos6 elastic]$ ls elasticsearch-5.5.2.tar.gz [rodge@centos6 elastic]$ pwd /home/rodge/local/elastic [rodge@centos6 elastic]$ |
2) 解壓
[rodge@centos6 elastic]$ tar -xvf elasticsearch-5.5.2.tar.gz |
3)啟動elasticsearch
./elasticsearch-5.5.2/bin/elasticsearch |
如果需要在後臺啟動, 則在該命令後加上”-d”, 即” ./elasticsearch-5.5.2/bin/elasticsearch -d”
表示啟動成功
4) 通過鏈接方位elasticsearch, 默認http端口為9200
curl -XGET http://localhost:9200 |
5)通過外部瀏覽器訪問方法
首先, 在elasticsearch安裝文件中, 修改config/elasticsearch.yml文件訪問地址network.host
vi config/elasticsearch.yml |
在文件”Network”中添加” network.host: 192.168.253.128”(192.168.253.128為本機ip), 或者將地址配置為”0.0.0.0”(0.0.0.0為通配ip)
2) 再次啟動如報錯, 如錯誤信息為如下信息,
則需要還在elasticsearch.yml文件中新增如下內容(具體說明詳見之後的—“常見啟動錯誤”)
在”Memory”中添加:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
此外, 還需要開啟防火墻9200端口(9200是elasticsearch默認http端口)
1.2.2 開放防火墻iptables端口
/sbin/iptables -I INPUT -p tcp --dport 9200 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart
查看CentOS防火墻信息:/etc/init.d/iptables status
1.2.3 安裝head
1) 首先, 將head插件拷貝到指定的目錄, 本文將head插件壓縮包拷貝至elasticsearch文件夾下
2)解壓head插件
unzip elasticsearch-head-master.zip |
3)安裝nodeJS, 版本要求在6.0以上
首先, 將nodeJS壓縮包拷貝至相應的路徑
然後, 解壓壓縮包
tar -xvf node-v6.9.1-linux-x64.tar.gz |
修改配置文件
vi /etc/profile |
# node (註釋作用) export NODE_HOME=/home/rodge/local/nodeJS/node-v6.9.1-linux-x64 export PATH=$PATH:$NODE_HOME/bin export NODE_PATH=$NODE_HOME/lib/node_modules
|
重新編譯配置文件
source /etc/profile |
查看nodeJS安裝版本
node -v
4) 在elasticsearch-head-master安裝目錄下運行:
npm install |
5) 啟動elasticsearch-head插件
npm run start |
啟動成功, 註意要打開防火墻9100端口, elasticsearch-head默認端口為9100
1.2.4 es與head插件關聯
在elasticsearch安裝目錄中更改如下文件
vi conf/elasticsearch.yml |
在最後加入以下內容
http.cors.enabled: true http.cors.allow-origin: "*" |
重新啟動elasticsearch和elasticsearch-head插件, 可以通過網頁查看elasticsearch集群情況
1.2.5 elasticsearch集群配置
主節點配置
vi config/elasticsearch.yml 在文件最後添加如下內容 #集群名稱(每個集群的該名稱一致) cluster.name: wali #節點名稱(每個節點的名稱不同) node.name: master #主機設置 node.master: true #註解ip, 端口默認(9200) network.host: 192.169.253.129 (本機ip) |
從屬節點配置
創建從屬節點elasticsearch的文件夾
mkdir es_slave
拷貝解壓elasticsearch兩份
cp elasticsearch-5.5.2.tar.gz es_slave/
cd es_slave/
tar -xvf elasticsearch-5.5.2.tar.gz
cp -r elasticsearch-5.5.2 es_slave1
cp -r elasticsearch-5.5.2 es_slave2
從節點slave1的elasticsearch.yml配置修改
從節點集群名稱和節點名稱指定, 集群名稱必須與主節點一致
cluster.name: wali node.name: slave1 #從節點ip地址和端口 network.host: 192.169.253.129 http.port: 8200 #從節點與主節點的連接 discovery.zen.ping.unicast.hosts: ["192.168.253.129"] |
從節點slave2的配置與從節點1的配置類似
1.3 常見啟動錯誤
1> 不能以root賬戶啟動elasticsearch, 否則有可能報錯
2> max file descriptors [4096] for elasticsearch process is too
low, increase to at least [65536]
max number of threads [1024] for user [hadoop] is too low, increase to at least
[2048]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at
least [262144]
解決方案:
編輯limits.conf 文件
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
vim /etc/security/limits.d/90-nproc.conf
找到如下內容:
soft nproc 1024
修改為
soft nproc 2048
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
並執行命令:
sysctl -p
3> ERROR: bootstrap
checks failed
system call filters failed to install; check the logs and fix your
configuration or disable system call filters at your own risk
原因:
這是在因為Centos6不支持SecComp,而ES5.2.0默認bootstrap.system_call_filter為true進行檢測,所以導致檢測失敗,失敗後直接導致ES不能啟動。
解決:
在elasticsearch.yml中配置bootstrap.system_call_filter為false,註意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
Elasticsearch安裝部署