专栏首页niceyoo基于Docker的Elasticsearch集群搭建
原创

基于Docker的Elasticsearch集群搭建

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

1、拉取Elasticsearch

基于Elasticsearch6.8.5版本:

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

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

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

# es01.yml
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
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
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

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容器后,启动es容器:

docker start es01 es02 es03

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

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

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

重新启动一下:

docker start es01 es02 es03

Elasticsearch-head中连接一下集群:

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

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

6、最后补充

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

本文首发于博客园: https://www.cnblogs.com/niceyoo

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MacOS中Elasticsearch的安装「借助Homebrew」

    如果你已经安装过Homebrew了,那么你可以跳过这一步,直接进行Elasticsearch安装步骤;

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

    我们在学习 java 基础的时候,从宏观上了解了一个类到运行大致是:.java 文件通过 javac 编译器编译得到 .class 文件,在用到该类时,jvm ...

    niceyoo
  • 创建线程都有哪些方式?— Callable篇

    相信大家回答这个问题没什么难度吧?通常问完创建方式,那么接下来就是问「1、2」跟「3」创建方式的不同了,只要说出「3」有返回值基本这个问题就过了,不管是出于好奇...

    niceyoo
  • 【实战】我背着女朋友,用 Python 偷偷抓取了她的行踪

    有时候女朋友一个人在外面玩耍,问她在哪个地方,就是不告诉我。但是,你又很想知道女朋友的「位置」,这该如何是好?

    昱良
  • SAP S/4 HANA 固定资产导入期初科目设置

    具体的导入方法可以参见SAP的notes,如2235848、2331123等,本文只简单说明一下期初抵消科目设置,以做笔记。

    matinal
  • 数据分析入门系列教程-数据清洗

    从今天开始,我们再一起来学习数据分析,共同进步! 首先先来进行一个数据清洗的实战,使用比较经典的数据集,泰坦尼克号生存预测数据。

    周萝卜
  • 【ML】深入理解CatBoost

    CatBoost是俄罗斯的搜索巨头Yandex在2017年开源的机器学习库,是Boosting族算法的一种。CatBoost和XGBoost、LightGBM并...

    yuquanle
  • 深入理解CatBoost

    CatBoost是俄罗斯的搜索巨头Yandex在2017年开源的机器学习库,是Boosting族算法的一种。CatBoost和XGBoost、LightGBM并...

    Datawhale
  • CCAI 2017 | 小数据学习对 AI 究竟有着怎样的影响?

    近几年来,得益于大数据的积累、计算能力的提升,深度学习从学术到工程领域均取得了非常显著的发展与突破,尤其是诸如图像识别、语音识别等实际场景应用。但是,依赖于海量...

    AI科技大本营
  • 设计模式 | 中介者模式及典型应用

    世界上存在着各种各样的数据库,不同数据库有各自的应用场景,对于同一份数据,最开始可能使用关系型数据库(如MySQL)进行存储查询,使用Redis作为缓存数据库,...

    小旋锋

扫码关注云+社区

领取腾讯云代金券