1. 程式人生 > >Elasticsearch5.6.4叢集搭建

Elasticsearch5.6.4叢集搭建

本次搭建的是一個三節點的叢集

(一)es的安裝

(1)下載安裝包

(2)解壓到指定目錄

(3)進入根目錄,修改config/elasticsearch.yml檔案,清空內容,新增如下配置

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的對映

(4)修改檔案config/jvm.options ,設定堆記憶體,其他的根據情況調整

-Xms4g
-Xmx4g

(5)如果系統裡面有多個jdk存在,可以修改bin/elasticsearch裡面,指定jdk版本

export JAVA_HOME=/usr/java/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH

(6)配置完成後分發到所有機器上

(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),這些會在後面的文章中介紹。