1. 程式人生 > >基於docker 搭建Elasticsearch5.6.4 分布式集群

基於docker 搭建Elasticsearch5.6.4 分布式集群

HR conf discovery 分詞 pre div 直接 lease mage

說明:

準備2臺機器,我這裏有192.168.0.107192.168.0.164 
192.168.0.164 作為master 
192.168.0.107 作為普通node

一、環境

1.docker 環境 
2.Elasticsearch5.6.4 
3.Elasticsearch-head:5 插件

二、下載

head 只需要在一臺機器上裝就行了、我直接和master節點裝在164上

docker pull elasticsearch:5.6.4 
docker pull mobz/elasticsearch-head:5

三、設置elasticsearch 配置環境

1、master[192.168.0.164] 配置

es1.yml:

#集群名稱 所有節點要相同
cluster.name: "mangues_es"
#本節點名稱
node.name: master
#作為master節點
node.master: true
#是否存儲數據
node.data: true
# head插件設置
http.cors.enabled: true
http.cors.allow-origin: "*"
#設置可以訪問的ip 這裏全部設置通過
network.bind_host: 0.0.0.0
#設置節點 訪問的地址 設置master所在機器的ip
network.publish_host: 192.168.0.164

2、啟動master

我的配置文件 和 data所在目錄都設置在物理機器上,這裏-v 映射下就可以了

docker run -d --name es1 -p 9200:9200 -p 9300:9300 -v /Users/mangues/Desktop/database/Elasticsearch/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /Users/mangues/Desktop/database/Elasticsearch/esdata1:/usr/share/elasticsearch/data elasticsearch:5.6.4

3、node[192.168.0.107] 配置

es2.yml

cluster.name: "mangues_es"
#子節點名稱
node.name: node
#不作為master節點
node.master: false
node.data: true

http.cors.enabled: true
http.cors.allow-origin: "*"

network.bind_host: 0.0.0.0
network.publish_host: 192.168.0.107
#設置master地址
discovery.zen.ping.unicast.hosts: [192.168.0.164]

2、啟動node

docker run -d --name es2 -p 9200:9200 -p 9300:9300 -v /Users/mangues/Desktop/database/Elasticsearch/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /Users/mangues/Desktop/database/Elasticsearch/esdata1:/usr/share/elasticsearch/data elasticsearch:5.6.4

四、開啟head查看

docker run -p 9100:9100 mobz/elasticsearch-head:5

打開鏈接 http://192.168.0.164:9100/ 查看節點狀態

技術分享圖片

五、其他

1、安裝docker-ui 可視化docker管理工具
docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker

打開鏈接 http://192.168.0.164:9000/ 查看164機器的docker

技術分享圖片

2、問題
elasticsearch max virtual memory areas vm.max_map_count [65530] is too low
解決辦法: 
1、切換到root用戶修改配置sysctl.conf

vi /etc/sysctl.conf 

添加下面配置:

vm.max_map_count=655360

並執行命令:

sysctl -p

然後,重新啟動elasticsearch,即可啟動成功。
3. 安裝ik 中文分詞插件

進入容器

$ sudo docker exec -it imageId /bin/bash
$ cd plugins
$ wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.4/elasticsearch-analysis-ik-5.6.4.zip
$ unzip elasticsearch-analysis-ik-5.6.4.zip
$ rm elasticsearch-analysis-ik-5.6.4.zip

利用

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.4/elasticsearch-analysis-ik-5.6.4.zip

會出問題:

java.io.FileNotFoundException: /usr/share/elasticsearch/config/analysis-ik/IKAnalyzer.cfg.xml (No such file or directory)

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u012915455/article/details/78952068

基於docker 搭建Elasticsearch5.6.4 分布式集群