本次搭建的是一個三節點的集羣java
(一)es的安裝node
(1)下載安裝包linux
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.4.tar.gzgit
(2)解壓到指定目錄github
(3)進入根目錄,修改config/elasticsearch.yml文件,清空內容,添加以下配置npm
cluster.name: es node.name: ${HOSTNAME} bootstrap.memory_lock: false bootstrap.system_call_filter: false network.host: ${HOSTNAME} http.port: 9600 transport.tcp.port: 9700 discovery.zen.ping.unicast.hosts: ["host0:9700", "host1:9700"] discovery.zen.minimum_master_nodes: 2 http.cors.enabled: true http.cors.allow-origin: "*"
注意配置主機名與ip的映射bootstrap
(4)修改文件config/jvm.options ,設置堆內存,其餘的根據狀況調整跨域
-Xms4g -Xmx4g
(5)若是系統裏面有多個jdk存在,能夠修改bin/elasticsearch裏面,指定jdk版本cors
export JAVA_HOME=/usr/java/jdk1.8 export PATH=$JAVA_HOME/bin:$PATH
(6)配置完成後分發到全部機器上ssh
(7)寫一個啓動集羣和關閉集羣的腳本 es.sh
注意,同級目錄下須要有一個hosts文件,裏面按行配置全部用到的ip
#啓動集羣方法 start(){ for ip in `cat hosts` do echo $ip"開始啓動es節點" ssh $ip "cd /home/search/elasticsearch && bin/elasticsearch -d -p /home/search/elasticsearch/es_pid " done } #關閉集羣方法 stop(){ for ip in `cat hosts` do echo $ip"開始關閉es節點" ssh $ip " cat /home/search/elasticsearch/es_pid | xargs kill -15 " done }
(二)head的安裝
//下載源碼 (1)git clone git://github.com/mobz/elasticsearch-head.git //進入根目錄 (2)cd elasticsearch-head //安裝 (3)npm install //啓動 (4)npm run start
這裏須要注意es5的head再也不是es的插件而是須要單獨做爲一個服務提供,上面咱們安裝es時,最後兩行配置屬性是開啓了es的跨域訪問,因此head做爲一個單獨的服務,是能夠訪問es集羣的。
此外es5的head安裝依賴nodejs環境,因此咱們要安裝node 步驟以下:
這裏採用的是下載官網編譯好的二進制包直接安裝
(1)wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz (2)xz -d node-v8.9.4-linux-x64.tar.xz (3)設置全局環境變量 export NODE_HOME=/usr/local/node/8.9.4 export PATH=$NODE_HOME/bin:$PATH (4)驗證 node -v
這裏還須要本身製做一個啓動和關閉head腳本:
//start.sh腳本 nohup npm run start &> es5_head.log & //stop.sh腳本 ps -ef | grep grunt | awk '{print $2}' | xargs kill -9
head只須要在一臺es節點上安裝便可
總結:
本文介紹了es5.6.4版本集羣的搭建以及es5的head的安裝,並給出了方便管理的啓動和關閉腳本。至此咱們的集羣已經能正常工做了。固然es5裏面還有不少其餘的插件好比典型的kibana,x-pack,kopf(最新的版本叫cerebro),這些會在後面的文章中介紹。