基于Docker方式实现Elasticsearch集群搭建

环境:Docker + (Elasticsearch6.8.5 * 3)

1、拉取Elasticsearch

docker pull elasticsearch6.8.5

2、创建es挂载目录

创建3个文件夹用于存放es挂载地址:es01、es02、es03

[root@CentOS7 ~]# mkdir /es-cluster
[root@CentOS7 ~]# cd /es-cluster/
[root@CentOS7 es-cluster]# mkdir es01
[root@CentOS7 es-cluster]# mkdir es02
[root@CentOS7 es-cluster]# mkdir es03
基于Docker方式实现Elasticsearch集群搭建

3、创建配置文件及数据存放目录

我们以es01 为例,cd es01,增加es01.yml配置文件:

# es01.yml 根据自己环境修改ip地址
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 10.211.55.4
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["10.211.55.4:9300","10.211.55.4:9301","10.211.55.4:9302"]
discovery.zen.minimum_master_nodes: 2

其他两个es配置文件类似:

# es02.yml 根据自己环境修改ip地址
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 10.211.55.4
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["10.211.55.4:9300","10.211.55.4:9301","10.211.55.4:9302"]
discovery.zen.minimum_master_nodes: 2

#
 es03.yml 根据自己环境修改ip地址
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 10.211.55.4
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["10.211.55.4:9300","10.211.55.4:9301","10.211.55.4:9302"]
discovery.zen.minimum_master_nodes: 2

由于默认es实例是1g,太吃内存了,我们修改一下jvm参数,每个es目录下放一个jvm.option文件:

-Xms128m
-Xmx128m
基于Docker方式实现Elasticsearch集群搭建

4、创建es容器并启动

docker create --name es01 --net host -v /es-cluster/es01/es01.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /es-cluster/es01/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /es-cluster/es01/data:/usr/share/elasticsearch/data elasticsearch:6.8.5

docker create --name es02 --net host -v /es-cluster/es02/es02.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /es-cluster/es02/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /es-cluster/es02/data:/usr/share/elasticsearch/data elasticsearch:6.8.5

docker create --name es03 --net host -v /es-cluster/es03/es03.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /es-cluster/es03/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /es-cluster/es03/data:/usr/share/elasticsearch/data elasticsearch:6.8.5
基于Docker方式实现Elasticsearch集群搭建

创建完docker容器后,启动es容器:

docker start es01 es02 es03
基于Docker方式实现Elasticsearch集群搭建

通过 docker ps -a 查看启动情况如图所示,启动失败了,我们通过 docker logs es01 查看启动日志

基于Docker方式实现Elasticsearch集群搭建

data目录访问权限异常,我们给一下权限:

chmod 777 es01/data/ -R 
chmod 777 es02/data/ -R
chmod 777 es03/data/ -R

重新启动一下:

docker start es01 es02 es03
基于Docker方式实现Elasticsearch集群搭建

Elasticsearch-head中连接一下集群:

基于Docker方式实现Elasticsearch集群搭建

5、Elasticsearch-head安装

elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。elasticsearch-head 插件的安装在 LinuxWindows 没什么区别,安装之前确保当前系统已经安装 nodejs 即可。

github地址https://github.com/mobz/elasticsearch-head

如下是安装命令:

# git 克隆
git clone git://github.com/mobz/elasticsearch-head.git
# 进入下载目录
cd elasticsearch-head
# 安装依赖「需要node环境」
npm install
# 运行
npm run start
基于Docker方式实现Elasticsearch集群搭建

浏览器访问:http://127.0.0.1:9100

基于Docker方式实现Elasticsearch集群搭建

6、最后补充

至此,基于DockerElasticsearch简单集群就搭建完了,下一篇我们将通过创建索引实例来介绍分片和副本,以及集群的 故障转移 等知识点。

推荐阅读:

基于Docker的Redis集群简单搭建

跟小伟一起学习类加载机制

为什么有这么多领优惠劵的群?


点击写留言

原文始发于微信公众号(程序员小源):基于Docker方式实现Elasticsearch集群搭建

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/47751.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!