基于docker 搭建Elasticsearch分布式集群
2018-02-27 19:47
941 查看
基于docker 搭建Elasticsearch分布式集群
准备2台机器,这里有192.168.0.164 和192.168.0.107 192.168.0.164 作为master
192.168.0.107 作为普通node
sudo docker pull mobz/elasticsearch-head:5
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 创建data文件夹:esdata-1
(2)启动master节点
配置文件 和 data所在目录都设置在物理机器上,这里-v 映射下就可以了docker run -d --name es-1 -p 9200:9200 -p 9300:9300 -v /Users/mangues/Desktop/database/Elasticsearch/es-1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /Users/mangues/Desktop/database/Elasticsearch/esdata-1:/usr/share/elasticsearch/data elasticsearch:5.6.4
#子节点名称
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]创建data文件夹:esdata-2
(2)启动node[192.168.0.107] 子节点docker run -d --name es-2 -p 9200:9200 -p 9300:9300 -v /Users/mangues/Desktop/database/Elasticsearch/es-2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /Users/mangues/Desktop/database/Elasticsearch/esdata-2:/usr/share/elasticsearch/data elasticsearch:5.6.4
$ 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
注意
采用下述方法安装ik时,在重启es时可能会报错,导致安装ik失败。./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)
...分词效果验证参考github:https://github.com/medcl/elasticsearch-analysis-ik/blob/v5.6.4/README.md
2、Es启动报错问题
问题ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]解决办法: 1、切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
然后,重新启动elasticsearch,即可启动成功。
转载地址:
点击打开链接
准备2台机器,这里有192.168.0.164 和192.168.0.107 192.168.0.164 作为master
192.168.0.107 作为普通node
1. 环境
1.docker 环境 2.Elasticsearch5.6.4 3.Elasticsearch-head:5 插件
2. 下载
head 只需要在一台机器上装就行了,直接和master节点装在164上。sudo docker pull elasticsearch:5.6.4sudo docker pull mobz/elasticsearch-head:5
3. 设置elasticsearch 配置环境
3.1. master[192.168.0.164] 配置
(1)创建master节点配置文件:es-1.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 创建data文件夹:esdata-1
(2)启动master节点
配置文件 和 data所在目录都设置在物理机器上,这里-v 映射下就可以了docker run -d --name es-1 -p 9200:9200 -p 9300:9300 -v /Users/mangues/Desktop/database/Elasticsearch/es-1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /Users/mangues/Desktop/database/Elasticsearch/esdata-1:/usr/share/elasticsearch/data elasticsearch:5.6.4
3.2. node[192.168.0.107] 配置
(1)创建子节点配置文件:es-2.ymlcluster.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]创建data文件夹:esdata-2
(2)启动node[192.168.0.107] 子节点docker run -d --name es-2 -p 9200:9200 -p 9300:9300 -v /Users/mangues/Desktop/database/Elasticsearch/es-2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /Users/mangues/Desktop/database/Elasticsearch/esdata-2:/usr/share/elasticsearch/data elasticsearch:5.6.4
4. 开启head查看
docker run --name elasticsearch-head-5 -p 9100:9100 mobz/elasticsearch-head:5打开链接 http://192.168.0.164:9100/ 查看节点状态
5. 安装ik 中文分词插件
进入容器,安装ik(注意安装与es匹配的ik分词器)(推荐这种方法)$ sudo docker exec -it 容器id(或容器名) /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
安装完后需要重启es节点的docker容器后,ik分词器才会生效,如执行命令:sudo docker restart es-1集群状态下,每个节点都需要分别安装ik分词器。
注意
采用下述方法安装ik时,在重启es时可能会报错,导致安装ik失败。./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)
...分词效果验证参考github:https://github.com/medcl/elasticsearch-analysis-ik/blob/v5.6.4/README.md
6. 其他
1、安装docker-ui 可视化docker管理工具sudo docker run -d --name ui-for-docker -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker打开链接 http://192.168.0.164:9000/ 查看164机器的docker2、Es启动报错问题
问题ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]解决办法: 1、切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
然后,重新启动elasticsearch,即可启动成功。
转载地址:
点击打开链接
相关文章推荐
- 基于docker 搭建Elasticsearch5.6.4 分布式集群
- 基于虚拟linux+docker搭建hadoop完全分布式集群
- 基于docker的spark-hadoop分布式集群之一: 环境搭建
- 基于docker搭建hadoop分布式集群(一)
- 使用Docker在本地搭建Hadoop分布式集群
- Docker中自动化搭建Hadoop2.6完全分布式集群
- 基于docker的hadoop HA 集群搭建
- 使用docker搭建部署hadoop分布式集群
- 基于Docker搭建Hadoop集群
- 使用Docker在本地搭建Hadoop分布式集群 的错误总结(持续更新)
- 基于Virtual Box搭建centos 7集群以及各类分布式系统环境搭建
- 用docker搭建elasticsearch集群
- 基于Hadoop分布式集群YARN模式下的TensorFlowOnSpark平台搭建
- [置顶] 基于docker-swarm搭建持续集成集群服务
- 分布式集群环境hadoop1.2.0、hbase0.94.4、zookeeper、elasticsearch搭建2
- ElasticSearch基于单机多节点下的集群搭建
- 使用Docker在本地搭建Hadoop分布式集群
- 基于Windows/Linux混合搭建Docker集群架构
- 基于hadoop2.6.0搭建5个节点的分布式集群
- spark2.0.2基于hadoop2.4搭建分布式集群