栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

centos7使用docker搭建elasticsearch集群

centos7使用docker搭建elasticsearch集群

原文发于:https://hjxlog.com/posts/20220215221548.html

一、前言

前几天买了腾讯云的服务器,正巧最近在学习elasticsearch,于是想搭建一个es集群玩玩。根据关键字在百度上搜了几篇博客,发现内容出奇的相似,我就预感事情并不简单。

果然!没有一篇博客能够完整安装的,翻了翻官方文档,要安装官方的镜像啥的,英语也不好,看着难受,退出去了。经过一下午的摸索,现记录一下完整的安装过程。

如能帮助到你,那就太好了!如果不行,那就请你再继续接着摸索,谢谢!

二、服务器

服务器环境: CentOS7.6,2核4GB

说明: 全新的服务器环境,从头开始安装。

三、环境安装 3.1 安装docker

使用官方安装脚本自动安装,安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

安装成功之后,启动docker服务:

service docker start
3.2 拉取elasticsearch 7.6.2镜像
docker pull elasticsearch:7.6.2
四、配置elasticsearch 4.1 创建目录
cd /
mkdir docker
mkdir /docker/ES
cd /docker/ES
mkdir data1 data2 data3 config
4.2 创建配置文件

在config文件夹下创建配置文件:

cd /docker/ES/config/
touch es1.yml es2.yml es3.yml
4.3 编辑yml文件

es1.yml

#ES01配置
cluster.name: elasticsearch-cluster  # 集群名字
node.name: es-node-01  # 节点名
network.bind_host: 0.0.0.0
network.publish_host: xxx.xxx.xx.xxx  # 你的服务器外网ip,以下xxx.xxx.xx.xxx代表相同意思
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: ["xxx.xxx.xx.xxx:9300","xxx.xxx.xx.xxx:9301","xxx.xxx.xx.xxx:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: es-node-01  # 初始节点

es2.yml

#ES02配置
cluster.name: elasticsearch-cluster
node.name: es-node-02
network.bind_host: 0.0.0.0
network.publish_host: xxx.xxx.xx.xxx
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: ["xxx.xxx.xx.xxx:9300","xxx.xxx.xx.xxx:9301","xxx.xxx.xx.xxx:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: es-node-01

es3.yml

#ES03配置
cluster.name: elasticsearch-cluster
node.name: es-node-03
network.bind_host: 0.0.0.0
network.publish_host: 175.178.87.185
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: ["xxx.xxx.xx.xxx:9300","xxx.xxx.xx.xxx:9301","xxx.xxx.xx.xxx:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: es-node-01
4.4 添加防火墙
firewall-cmd --add-port=9300/tcp
firewall-cmd --add-port=9301/tcp
firewall-cmd --add-port=9302/tcp
4.5 修改文件夹权限
chmod 777 data1 data2 data3
五、启动容器 5.1 启动命令
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 9200:9200 -p 9300:9300 -v /docker/ES/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name ES01 -d elasticsearch:7.6.2

docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 9201:9201 -p 9301:9301 -v /docker/ES/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name ES02 -d elasticsearch:7.6.2

docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 9202:9202 -p 9302:9302 -v /docker/ES/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name ES03 -d elasticsearch:7.6.2
5.2 发现问题

在网上跟着步骤操作的时候,来到这里就发现了问题,通过docker ps -a查看到es容器并没有启动成功!

通过docker命令docker logs ES01查看得知,原来是虚拟机内存太小了!

解决方法:

修改配置文件:

vi /etc/sysctl.conf

追加:

vm.max_map_count=262144

保存退出。

执行/sbin/sysctl -p立即生效。

删掉之前的容器,重新执行,原以为这时候已经可以了,没想到又报了IPv4网络错误:

WARNING: IPv4 forwarding is disabled. Networking will not work.

解决方法:

修改配置文件:

vim /usr/lib/sysctl.d/00-system.conf

追加:

net.ipv4.ip_forward=1

重启网络(如果不行可以重启服务器试试):

systemctl restart network

再将之前错误的docker容器删掉,重新执行那三条docker run命令。

六、elasticsearch集群 6.1 查看是否启动成功
curl 127.0.0.1:9200

6.2 查看集群健康状态:
curl '127.0.0.1:9200/_cat/health?pretty=true'

6.3 elasticsearch head插件

在服务器开放9200端口,在chrome浏览器安装elasticsearch head插件,查看数据:

完毕!

七、总结
    服务器不需要安装Java环境也可以,docker的es镜像中相关环境。发现哪里有问题,第一时间去看日志。在困难中摸索,成长才比较快。
参考资料
    https://www.cnblogs.com/knownfreestyle/p/13225108.htmlhttps://blog.csdn.net/xcc_2269861428/article/details/100186654https://blog.csdn.net/ezbuy/article/details/82462952
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/742508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号