docker搭建Elasticsearch集群

news2024/11/26 20:34:31

这里写目录标题

  • 1.拉取es镜像
  • 2.配置配置文件
  • 3.启动容器
  • 4.启动过程中遇到的问题
  • 5.查看容器启动情况

1.拉取es镜像

 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.0

版本根据自己需求进行拉取,我这边选择的是7.17.0,不同版本配置可能稍有差别!

2.配置配置文件

采用文件挂载的方式,采用宿主机配置文件,本文采用的三台主机搭建集群,每一台主机的配置稍有区别!
主机一:

# es1
# 主master配置样例子
# 集群的名称
cluster.name: "docker-cluster"
# 节点的名称
node.name: node-1
# 此节点是否可以用作master节点
node.master: true
# 此节点是否是存储节点
node.data: false
# 此节点是否是预处理节点 如果是master节点的话 建议这里是true
node.ingest: true
# 
network.host: 0.0.0.0
# 配置端口
http.port: 9200
# 集群通信端口
transport.port: 9300
# 集群内节点信息 每个节点会共享自己的此参数
# 这里我配置自己的dockerIP
discovery.seed_hosts: ["172.17.0.2:9300","172.17.0.3:9300","172.17.0.4:9300"]
# 集群的master候选节点目录。只有在初始化的时候才生效。
# 这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
cluster.initial_master_nodes: ["node-1"]
# cross 跨域访问 配置这个之后 head就可以用了
http.cors.enabled:  true
http.cors.allow-origin:  "*"

主机二:

# es2
# 从节点配置样例子
# 集群的名称
cluster.name: "docker-cluster"
# 节点的名称
node.name: node-2
# 此节点是否可以用作master节点
node.master: true
# 此节点是否是存储节点
node.data: true
# 此节点是否是预处理节点 如果是master节点的话 建议这里是true
node.ingest: true
# 
network.host: 0.0.0.0
# 配置端口
http.port: 9200
# 集群通信端口
transport.port: 9300
# 集群内节点信息 每个节点会共享自己的此参数
# 这里我配置自己的dockerIP
discovery.seed_hosts: ["172.17.0.2:9300","172.17.0.3:9300","172.17.0.4:9300"]
# 集群的master候选节点目录。只有在初始化的时候才生效。
# 这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
cluster.initial_master_nodes: ["node-1"]
# cross 跨域访问 配置这个之后 head就可以用了
http.cors.enabled:  true
http.cors.allow-origin:  "*"

主机三:

# es3
# 从节点配置样例子
# 集群的名称
cluster.name: "docker-cluster"
# 节点的名称
node.name: node-3
# 此节点是否可以用作master节点
node.master: true
# 此节点是否是存储节点
node.data: true
# 此节点是否是预处理节点 如果是master节点的话 建议这里是true
node.ingest: true
# 
network.host: 0.0.0.0
# 配置端口
http.port: 9200
# 集群通信端口
transport.port: 9300
# 集群内节点信息 每个节点会共享自己的此参数
# 这里我配置自己的dockerIP
discovery.seed_hosts: ["172.17.0.2:9300","172.17.0.3:9300","172.17.0.4:9300"]
# 集群的master候选节点目录。只有在初始化的时候才生效。
# 这里只写node-1 并且配置这个参数 是用于快速搭建集群。集群已启动自动node-1   是master
cluster.initial_master_nodes: ["node-1"]
# cross 跨域访问 配置这个之后 head就可以用了
http.cors.enabled:  true
http.cors.allow-origin:  "*"

3.启动容器

# 我自己的镜像版本是7.17.0
# 必须限制es内存的大小 es默认内存是4g 单机docker模拟的话 不限制内存 资源是不够的
docker run -d  --name es1 -e ES_JAVA_OPTS="-Xms156m -Xmx156m" -p 9200:9200 -p 9300:9300 -v /Users/es/es1/e1.yml:/usr/share/elasticsearch/config/elasticsearch.yml   elasticsearch:7.17.0

docker run -d  --name es2 -e ES_JAVA_OPTS="-Xms156m -Xmx156m" -p 9201:9200 -p 9301:9300 -v /Users/es/es2/e2.yml:/usr/share/elasticsearch/config/elasticsearch.yml   elasticsearch:7.17.0

docker run -d  --name es3 -e ES_JAVA_OPTS="-Xms156m -Xmx156m" -p 9201:9200 -p 9301:9300 -v /Users/es/es2/e3.yml:/usr/share/elasticsearch/config/elasticsearch.yml   elasticsearch:7.17.0

-v /Users/es/es1/e1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v是挂载,将宿主机 /Users/es/es1/e1.yml挂载到/usr/share/elasticsearch/config/elasticsearch.yml,根据自己的实际目录自行设置,-p是端口映射,切记端口不可已被占用!

使用ss -nlt 查看端口是否已启动
在这里插入图片描述

4.启动过程中遇到的问题

运行elasticsearch时连接时显示已拒绝连接,容器自动关闭的问题
通过docker logs -f CONTAINER ID 查看容器日志信息,看最后面发现一个error:

ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least

显示max_map_count的值太小了,需要设大到262144,此时查看max_map_count :

cat /proc/sys/vm/max_map_count
65530

设置max_map_count:

sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144

重启容器:

docker start  容器id或名字

如果重新构建需要删除或者更改容器名称,否则会报错,可以执行docker rm -f $(docker ps -a -q) ,删除所有已退出的容器

5.查看容器启动情况

访问的ip地址需要更改为集群所在宿主机的ip地址

http://127.0.0.1:9200/_cat/nodes?pretty

在这里插入图片描述

在这里插入图片描述
安装elasticsearch Head 插件!
在这里插入图片描述
添加集群ip地址就可以查看详细的集群信息,同时可以对集群进行操作!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/533813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ANR原理篇 - Input超时机制

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录前言一、事件分发流程1.1 事件分发流程概览1.2 InputDispatcher 三、ANR触发流程超时重…

ANR原理篇 - service/broadcast/provider超时机制

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录前言一、Service超时机制1.1 埋炸弹1.1.1 AS.realStartServiceLocked1.1.2 AS.bumpSer…

三大基础排序算法——我欲修仙(功法篇)

个人主页:【😊个人主页】 系列专栏:【❤️我欲修仙】 学习名言:莫等闲、白了少年头,空悲切。——岳飞 系列文章目录 第一章 ❤️ 学习前的必知知识 第二章 ❤️ 二分查找 文章目录 系列文章目录前言🚗&…

Netty实战(三)

Netty的组件和设计 一、Channel、EventLoop 和 ChannelFuture1.1 Channel 接口1.2 EventLoop 接口1.3 ChannelFuture 接口 二、ChannelHandler 和 ChannelPipeline2.1 ChannelHandler 接口2.2 ChannelPipeline 接口2.3 编码器和解码器2.4 抽象类 SimpleChannelInboundHandler 三…

suricata中DPDK收发包源码分析2

《suricata中DPDK收发包源码分析1》中分析了整体的DPDK收发包框架代码,今天我们继续来深入了解一下一些细节方面的问题。 目录 Q1:收发包线程模式在代码中是怎样确定的? Q2: DPDK库的初始化rte_eal_init在哪里调用的? Q3: 对网…

Linux中LV Status的状态为NOT available

今天下午有现场反馈备份磁盘找不到了,使用lvm方式的。提供了todesk帮忙看下, 首先使用 blkid查看,确实看不到备份磁盘的UUID,使用lvdisplay查看状态,状态不对了 [rootdb1 ~]# lvdisplay --- Logical volume --- …

.Vue3项目初始化

文章目录 1.Vue3项目初始化1.1 创建vue项目1.2 vue 初始化1.3 git 项目管理1.4 配置iconfig.json1.5 element 按需引入1.6 element 主题色的定制1.7 axios的基础配置1.8 router路由的配置 1.Vue3项目初始化 1.1 创建vue项目 npm init vuelatest1.2 vue 初始化 npm install1.…

【2023/05/16】MonteCarlo

Hello!大家好,我是霜淮子,2023倒计时第11天。 Share O Beauty,find theyself in love,not in the flattery of thymirror. 译文: 啊,美啊,在爱中找你自己吧,不要到你镜子的诌谀中去寻找。 M…

[遗传学]转座因子的结构与功能

本篇文章主要带你了解:转座因子的发现和分类;原核生物以及真核生物种的转座子;转座作用的分子机制以及转座因子的遗传学效应和应用. 🧬转座因子的发现和分类 🧬转座因子的概念 转座因子(transposable element)是在转座酶(transposase&#xf…

Class 03 - R语言的 Vectors(向量) 与 lists(列表)

Class 03 - R语言的 Vector与 列表 list R语言语法脚本文件的创建、保存、和修改名称第一个函数使用帮助功能查看函数详细说明语法问题变量与赋值定义变量名称格式调用变量 R中的数据结构Vectors (向量)创建向量查看向量的性质查看数据类型 typeof()查看数据长度 length()检查…

Elasticsearch 核心技术(十):GEO 地理查询(geo_bounding_box、geo_distance、geo_shape)

❤️ 博客主页:水滴技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 🌸 订阅专栏:大数据核心技术从入门到精通 文章目录 一、地理数据类型1.1、geo_point 地理点类型1.1.1、创建一个含有 geo_point 字…

opencv_c++学习(八)

一、两张图像的像素比较 比较最大最小 最小: min(lnputArray src1, InputArray src2, outputArray dst)最大: max(lnputArray src1, InputArray src2, outputArray dst)src1 :第一个图像矩阵,可以是任意通道数的矩阵。 src2:第二个图像矩…

电源电压过冲

前言: 前段时间突然想起来以前的一个问题,这个问题相信大家也都遇到过,甚至是解决过,或者没解决,也就不了了之,今天这篇文章,主要来讲下这个问题,看完喜欢的欢迎给我留言或者点赞&a…

【Linux】常见指令

🌇个人主页:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 🛸C专栏:Linux修炼内功基地 家人们更新不易,你们的👍点赞👍和⭐关注⭐…

EasyYapi插件—快速生成API接口文档

EasyYapi插件—快速生成API接口文档 1. 功能 导出http到(Controller注解类) YapiPostmanmarkdown导出RPC到 YapimarkdownCall api调用API接口 注意点: 注释中可以使用module标注模块所属的模块。表示接口会发布到yapi模块下;只…

生存分析利器:Python 中的 Kaplan-Meier Fitter 类详解

KaplanMeierFitter是lifelines库中用于计算生存分析的一个类。使用KaplanMeierFitter类,我们可以对我们的数据进行不同组之间的生存分析,比如根据年龄、性别、治疗手段等分类变量进行分组分析。 该类包含许多方法和属性,其中最常用的是fit()…

FPGA复位信号设计讨论

复位概述 复位作为电子系统中最常见的信号同时也是最重要的信号,它对工程师整体的设计表现有着极大的影响。复位信号可能深刻影响设计的性能表现,功耗,面积等等。对于一个优秀的系统设计,很难不把复位信号当成一个关键信号来设计。…

【车载基础软件 |ASF中间件 系列二】— 国产汽车生态平台ASF的生态框架

本文主要介绍国产基础软件开发平台架构下基于ASF的生态框架。 背景信息 随着E/E架构演进,从最初传统的分布式架构,由独立功能的ECU通过CANLIN等高实时性 总线通讯。诼渐演进到当前分域集中式结合车联网功能的结构,车载以大网逐渐步入了整车电子电器架构之中,除了高实时性…

【AIGC使用教程】论文阅读神器 SciSpace 从注册到体验

欢迎关注【AIGC使用教程】 专栏 【AIGC使用教程】论文阅读神器 SciSpace 从注册到体验 【AIGC使用教程】Microsoft Edge/Bing Chat 注册使用完全指南 【AIGC使用教程】GitHub Copilot 免费注册及在 VS Code 中的安装使用 【AIGC使用教程】GitHub Copilot 免费注册及在 PyCharm …

golang第一个简单项目实战+源码(gin+gorm)

创建项目并新建包 点击file->settings->GOPATH,把当前项目加进GOPATH目录中,然后点击apply, 点击加号完成之后,在左边选择go build 新建数据库 编写配置信息 这里将数据的信息都写在了配置文件里面 dns的内容为&#x…