1. 程式人生 > >elasticsearch 完全分散式安裝

elasticsearch 完全分散式安裝

1. 首先master節點的配置,修改elasticsearch的配置檔案,config/elasticsearch.yml;新增如下配置

cluster.name 指定叢集的名稱,node.name指定節點的名稱,node.master: true指定該節點為主節點。

elasticsearch服務

2. 把當前主機的elasticsearch壓縮包遠端拷貝到三臺機器

scp elasticsearch-6.1.2.tar.gz  [email protected]:/usr/local/bigdata/

scp elasticsearch-6.1.2.tar.gz  [email protected]

:/usr/local/bigdata/

scp elasticsearch-6.1.2.tar.gz  [email protected]:/usr/local/bigdata/

我這裡安裝有五臺虛擬機器,每個主機都修改了主機名

[[email protected] ~]# cat /etc/hostname 
master

hosts檔案配置的有主機名和IP地址的對映

[[email protected] ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.129.3 master
192.168.129.4 master2
192.168.129.5 slave1
192.168.129.6 slave2
192.168.129.7 slave3

[[email protected] ~]# 

3. slave主機的安裝配置

network.host: 0.0.0.0

http.port: 9200

cluster.name: skynet
node.name: slave1
discovery.zen.ping.unicast.hosts: ["master"]

注意network.host的修改;http.port還是9200,因為是完全分散式,不存在埠衝突的問題。

4. 關於elasticsearch啟動的報錯問題,這個真的很鬱悶,啟動服務需要修改那麼多配置資訊,但是Mac OS就不用修改。

我的虛擬機器環境是centos7,各種異常;大家可以參考網上的配置修改。

4.1 不能用root使用者啟動,建立一個普通使用者,並授權

groupadd elsearch

useradd elsearch -g elsearch -p elasticsearch

chown -R elsearch /usr/local/bigdata/elasticsearch-6.1.2   注意授權

4.2 ERROR: bootstrap checks failed

max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]

解決:切換到root使用者,編輯limits.conf 新增類似如下內容

vi /etc/security/limits.conf

新增如下內容:

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

4.3 max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

解決:切換到root使用者修改配置sysctl.conf

vi /etc/sysctl.conf

新增下面配置:

vm.max_map_count=655360

並執行命令:

[[email protected] bin]# sysctl -p

vm.max_map_count = 655360

然後,重新啟動elasticsearch,即可啟動成功。

4.4 系統centos7.1可以訪問127.0.0.1:9200,但不能訪問192.168.29.128:9200 後面ip就是127.0.0.1的區域網ip

修改配置檔案 config/elasticsearch.yml

network.host: 0.0.0.0

如果大家遇到其他問題,可以自己百度一下;我的解決以上問題可以啟動了。

5. 啟動三個slave,最後通過head外掛看到的叢集狀態為:

至此,elasticSearch的完全分散式安裝完成;有問題留言,共同討論。