Docker 搭建elasticsearch 7.6.x集群
Docker 搭建elasticsearch 7.6.x集群
文章目录
- 拉取镜像
- 设置Elasticsearch挂载目录
- 编写elasticsearch.yml配置文件
- node-1
- node-2
- node-3
- 创建镜像
- 验证是否搭建成功
- 问题
- max virtual memory areas vm.max_map_count [65530] is too low, increase to at least
- 参考
拉取镜像
docker pull elasticsearch:7.6.0
设置Elasticsearch挂载目录
#存放配置文件的文件夹
mkdir -p /home/elasticsearch/node-1/config
mkdir -p /home/elasticsearch/node-2/config
mkdir -p /home/elasticsearch/node-3/config
#存放数据的文件夹
mkdir -p /home/elasticsearch/node-1/data
mkdir -p /home/elasticsearch/node-2/data
mkdir -p /home/elasticsearch/node-3/data
#存放运行日志的文件夹
mkdir -p /home/elasticsearch/node-1/log
mkdir -p /home/elasticsearch/node-2/log
mkdir -p /home/elasticsearch/node-3/log
#存放IK分词插件的文件夹
mkdir -p /home/elasticsearch/node-1/plugins
mkdir -p /home/elasticsearch/node-2/plugins
mkdir -p /home/elasticsearch/node-3/plugins
chmod 777 /home/elasticsearch/node-1/data
chmod 777 /home/elasticsearch/node-2/data
chmod 777 /home/elasticsearch/node-3/data
chmod 777 /home/elasticsearch/node-1/plugins
chmod 777 /home/elasticsearch/node-2/plugins
chmod 777 /home/elasticsearch/node-3/plugins
chmod 777 /home/elasticsearch/node-1/log
chmod 777 /home/elasticsearch/node-2/log
chmod 777 /home/elasticsearch/node-3/log
chmod 777 /home/elasticsearch/node-1/config
chmod 777 /home/elasticsearch/node-3/config
chmod 777 /home/elasticsearch/node-2/config
生成目录结构
.
├── node-1
│ ├── config
│ │ └── elasticsearch.yml
│ ├── data
│ │ └── nodes
│ │ └── 0
│ │ ├── node.lock
│ │ └── _state
│ │ ├── manifest-3.st
│ │ ├── node-3.st
│ │ ├── _o.cfe
│ │ ├── _o.cfs
│ │ ├── _o.si
│ │ ├── segments_11
│ │ └── write.lock
│ ├── log
│ └── plugins
├── node-2
│ ├── config
│ │ └── elasticsearch.yml
│ ├── data
│ │ └── nodes
│ │ └── 0
│ │ ├── node.lock
│ │ └── _state
│ │ ├── manifest-4.st
│ │ ├── node-4.st
│ │ ├── _r.cfe
│ │ ├── _r.cfs
│ │ ├── _r.si
│ │ ├── segments_11
│ │ └── write.lock
│ ├── log
│ └── plugins
└── node-3├── config│ └── elasticsearch.yml├── data│ └── nodes│ └── 0│ ├── node.lock│ └── _state│ ├── manifest-1.st│ ├── _n.cfe│ ├── _n.cfs│ ├── node-1.st│ ├── _n.si│ ├── segments_11│ └── write.lock├── log└── plugins
编写elasticsearch.yml配置文件
node-1
#集群名称
cluster.name: my-es
#当前该节点的名称
node.name: node-1
#是不是有资格竞选主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#给当前节点自定义属性(可以省略)
#node.attr.rack: r1
#数据存档位置
path.data: /usr/share/elasticsearch/data
#日志存放位置
path.logs: /usr/share/elasticsearch/log
#是否开启时锁定内存(默认为是)
#bootstrap.memory_lock: true
#设置网关地址,我是被这个坑死了,这个地址我原先填写了自己的实际物理IP地址,
#然后启动一直报无效的IP地址,无法注入9300端口,这里只需要填写0.0.0.0
network.host: 0.0.0.0
#设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址,
#如果是docker安装节点的IP将会是配置的IP而不是docker网管ip
network.publish_host: 192.168.52.128
#设置映射端口
http.port: 9200
#内部节点之间沟通端口
transport.tcp.port: 9300
#集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写
#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上
discovery.seed_hosts: ["192.168.52.128:9300","192.168.52.128:9301","192.168.52.128:9302"]
#当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,
#其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,
#如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#在群集完全重新启动后阻止初始恢复,直到启动N个节点
#简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,
gateway.recover_after_nodes: 2
#删除索引是是否需要显示其名称,默认为显示
#action.destructive_requires_name: true
node-2
#集群名称
cluster.name: my-es
#当前该节点的名称
node.name: node-2
#是不是有资格竞选主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#给当前节点自定义属性(可以省略)
#node.attr.rack: r1
#数据存档位置
path.data: /usr/share/elasticsearch/data
#日志存放位置
path.logs: /usr/share/elasticsearch/log
#是否开启时锁定内存(默认为是)
#bootstrap.memory_lock: true
#设置网关地址,我是被这个坑死了,这个地址我原先填写了自己的实际物理IP地址,
#然后启动一直报无效的IP地址,无法注入9300端口,这里只需要填写0.0.0.0
network.host: 0.0.0.0
#设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址,
#如果是docker安装节点的IP将会是配置的IP而不是docker网管ip
network.publish_host: 192.168.52.128
#设置映射端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9301
#集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写
#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上
discovery.seed_hosts: ["192.168.52.128:9300","192.168.52.128:9301","192.168.52.128:9302"]
#当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,
#其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,
#如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#在群集完全重新启动后阻止初始恢复,直到启动N个节点
#简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,
gateway.recover_after_nodes: 2
#删除索引是是否需要显示其名称,默认为显示
#action.destructive_requires_name: true
node-3
#集群名称
cluster.name: my-es
#当前该节点的名称
node.name: node-3
#是不是有资格竞选主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#给当前节点自定义属性(可以省略)
#node.attr.rack: r1
#数据存档位置
path.data: /usr/share/elasticsearch/data
#日志存放位置
path.logs: /usr/share/elasticsearch/log
#是否开启时锁定内存(默认为是)
#bootstrap.memory_lock: true
#设置网关地址,我是被这个坑死了,这个地址我原先填写了自己的实际物理IP地址,
#然后启动一直报无效的IP地址,无法注入9300端口,这里只需要填写0.0.0.0
network.host: 0.0.0.0
#设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址,
#如果是docker安装节点的IP将会是配置的IP而不是docker网管ip
network.publish_host: 192.168.52.128
#设置映射端口
http.port: 9202
#内部节点之间沟通端口
transport.tcp.port: 9302
#集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写
#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上
discovery.seed_hosts: ["192.168.52.128:9300","192.168.52.128:9301","192.168.52.128:9302"]
#当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,
#其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,
#如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#在群集完全重新启动后阻止初始恢复,直到启动N个节点
#简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,
gateway.recover_after_nodes: 2
#删除索引是是否需要显示其名称,默认为显示
#action.destructive_requires_name: true
创建镜像
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9200:9200 -p 9300:9300 -v /home/elasticsearch/node-1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/elasticsearch/node-1/plugins:/usr/share/elasticsearch/plugins -v /home/elasticsearch/node-1/data:/usr/share/elasticsearch/data -v /home/elasticsearch/node-1/log:/usr/share/elasticsearch/log --name es-node-1 elasticsearch:7.6.0
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9201:9201 -p 9301:9301 -v /home/elasticsearch/node-2/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/elasticsearch/node-2/plugins:/usr/share/elasticsearch/plugins -v /home/elasticsearch/node-2/data:/usr/share/elasticsearch/data -v /home/elasticsearch/node-2/log:/usr/share/elasticsearch/log --name es-node-2 elasticsearch:7.6.0
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9202:9202 -p 9302:9302 -v /home/elasticsearch/node-3/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/elasticsearch/node-3/plugins:/usr/share/elasticsearch/plugins -v /home/elasticsearch/node-3/data:/usr/share/elasticsearch/data/ -v /home/elasticsearch/node-3/log:/usr/share/elasticsearch/log --name es-node-3 elasticsearch:7.6.0
验证是否搭建成功
http://192.168.52.128:9200/_cat/nodes?pretty
问题
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least
vim /etc/sysctl.conf
vm.max_map_count=655360
#保存退出,并刷新系统配置
sysctl -p /etc/sysctl.conf/
参考
elasticsearch搭建
相关文章:

乐嘉性格色彩分析测试题
乐嘉<性格色彩>分析测试题 说明:最符合你的句子用红色作标记 1. 关于人生观,我的内心其实是: A 希望能够有尽量多的人生体验,所以会有非常多样化的想法。 B在小心合理的基础上,谨慎地确定自己的目标ÿ…

OAuth_1
OAuth2.0是一个应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以 访问Facebook的用户数据。用户访问web游戏应用,该游戏应用要求用户通过Facebook 登录。用户登录到Facebook,再重定向回游戏应用,游戏应用就可以访问用户…

ubuntu 使用阿里云 apt 源
以下内容来自 https://opsx.alibaba.com/mirror Ubuntu对应的“帮助”信息 修改方式:打开 /et/apt/sources.list将http://archive.ubuntu.com/替换为mirrors.aliyun.com即可 PS:网络上的信息,一定得注意时效性。以下内容,均为此时…

ecos 编译时无法找到 tclConfig.sh 和 tkConfig.sh
这是因为 tcl-devel tk-devel 一般系统中默认是不安装的,至少cent-os 5.5 和fedora 11是这样的,安装这两个包即可。 # yum install tcl-devel tk-devel 补记: ubuntu 10.04.2 上为了便于多个版本的tcl的存在,tcl被安装的位置不太一…

从消息处理角度看应用程序与windows的关系(图示)
转载于:https://blog.51cto.com/gzkhrh/338533

002:用Python设计第一个游戏
笔记 什么是BIF? 答:BIF 即 Built-in Functions,内置函数。为了方便快速编写脚本程序,Python 提供了非常丰富的内置函数,我们只需要直接调用即可,例如 print() 的功能是“打印到屏幕”,input() …

哑谜,回文和暴力之美
暴力搜索是一个有趣的东西。至少刘汝佳是这么认为的。编程之美的4.10节就是典型的暴力题。虽然作者将其难度定义为一颗星,但却不能因此认为这个类型的问题就是那么容易的,很多可能需要一些有创造力的想法。 不妨试试下面这几道题: Island of …

身份证敏感信息处理 图片添加蒙版
实现效果 需要的jar包 <!-- https://mvnrepository.com/artifact/com.jhlabs/filters --><dependency><groupId>com.jhlabs</groupId><artifactId>filters</artifactId><version>2.0.235-1</version></dependency> 调…

Linux bash管道符“|”使用介绍与例子
https://blog.csdn.net/wangqianyilynn/article/details/75576815转载于:https://www.cnblogs.com/dhName/p/10967718.html

PostgreSQL第一步:安装
PostgreSQL是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的BSD-风格许可证下发行。它在其他开放源代码数据库系统(比如MySQL和Firebird),和专有系统比如Oracle、Sybase、IBM的DB2和Microsof…

【Henu ACM Round#15 A】 A and B and Chess
【链接】 我是链接,点我呀:) 【题意】 在这里输入题意 【题解】 统计大写和小写的个数。 比较答案。输出即可。 【代码】 #include <bits/stdc.h> using namespace std;string s[10]; map<char,int> dic; int inc[300];int main() {for (int i 0;i < 8;i)cin…

[转载] static class 静态类(Java)
一般情况下是不可以用static修饰类的。如果一定要用static修饰类的话,通常static修饰的是匿名内部类。 在一个类中创建另外一个类,叫做成员内部类。这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态…
tomcat监控-psi-probe使用
什么是psi-probe 这是一款 Tomcat 管理和监控工具,前身是 Lambda Probe。由于 Lambda Probe 2006不再更新,所以 PSI Probe 算是对其的一个 Fork 版本并一直更新至今。 下载 下载地址:https://github.com/psi-probe/psi-probe 百度网盘地址…

配置文件app.config
无论对于客户端程序还是web应用程序,配置文件的作用不言而喻,现总结用法如下: 1. 创建配置节类 必须创建继承自ConfigurationSection的对象才能进行配置数据读写操作,ConfigurationSection提供了索引器用来获取和设置配置数据&…

windows远程桌面如果超出最大连接数, 使用命令行mstsc /console登录即可
远程桌面如果超出最大连接数, 使用命令行mstsc /console登录即可。 (也可以用 mstsc /admin) 可以在运行里使用mstsc /console /v:IP:远程端口即可强制登录; 如果直接在远程桌面连接端使用就直接输入/console /v:IP:远程端口. 如:mstsc /cons…

AppiumForWin安装
尝试安装Windows版本的Appium参考:http://www.cnblogs.com/fnng/p/4540731.html第一步:安装nodehttps://nodejs.org/en/安装成功后使用:node -v,进行验证第二步:安装Appium下面的方法失败:原因下载不成功&a…
prometheus--初见
什么是prometheus Prometheus(普罗米修斯)是一个开源系统监控和警报工具,最初是在SoundCloud建立的。自2012年成立以来,许多公司和组织都采用了普罗米修斯,该项目拥有一个非常活跃的开发者和用户社区。它现在是一个独立…

JavaScript时间日期格式化
/** 时间对象的格式化;*/ Date.prototype.format function(format) {/** eg:format"YYYY-MM-dd hh:mm:ss";*/var o {"M" :this.getMonth() 1, // month"d" :this.getDate(), // day"h" :this.getHours(), // hour"m" :th…

Hello World
作为所有编程语言的起始阶段,HELLO WORLD占据着无法改变的地位,所有中/英/法/德/美……版本的编程教材中,HELLO WORLD总是作为第一个TEST记录于书本之中,所有的编程第一步就在于此了!经典之中的经典!HELLO …

POJ 1144 Network (求割点)
题意: 给定一幅无向图, 求出图的割点。 割点模板:http://www.cnblogs.com/Jadon97/p/8328750.html 分析: 输入有点麻烦, 用stringsteam 会比较简单 #include<cstdio> #include<iostream> #include<queu…
mongoose简单使用
介绍&安装 官网:http://www.mongoosejs.net/ npm i -S mongoose 使用 1.连接mongodb&创建模型 var mongoose require(mongoose)//1、连接mongodb mongoose.connect(mongodb://localhost/test)//2、设置文档结构var userSchema new mongoose.Schema…

Codeforces Round #563 (Div. 2)/CF1174
Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i1}^n a_i\)与\(\sum\limits_{n1}^{2n}a_i\)差值最大,排一下序就好了 CF1174B Ehab Is an Odd Person 一个显然的结论就是如果至少有一个奇数和一个偶数ÿ…

Enterprise Architect 中文经典教程
一、Enterprise Architect简介Enterprise Architect是一个对于软件系统开发有着极好支持的CASE软件(Computer Aided Software Engineering)。EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过程。在需求分析…

[WebDev]Web 开发与设计师速查手册大全
Cheat Sheet 一词在中文中并没有很贴切的对译,大概是考试作弊条一类的东西,这要求 Cheat Sheet 必须短小精悍又覆盖广泛,作为 Web 开发与设计师,免不了在工作时查询大量资料,某个 Web 色值,某个 JavaScript…

android中的回调
1、引子 android中的回调最经典的就是点击事件设置监听(一般通过switch(v.getId()))这里写个最主要的 btn_rigister.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {// TODO log in} }…

nodejs回调函数理解
回调实例 问题:想要得到一秒后 计算出的结果 //错误写法function add(x,y) {console.log(1);setTimeout(function () {console.log(2);var ret x y;return ret;},1000);console.log(3)}console.log(add(10,20))添加一个函数作为参数,将计算出来的结果传…

C# 运算符的优先级
优先级由高到低 --(用作前缀); ; -(一元); () ; ! ; ~ * ; / ; % ; - <<; >> < ; > ; < ; > ; ! & ^ | && || ; * ; / ; % ; ; - ; << ; >> ; & ; ^ ;| --(作后缀);转载于:https://www.cnblogs.com/h…

Service Manager 的系统要求
以下各节包含有关 Service Manager 的硬件和软件要求的信息,并基于以下环境。System Center Service Manager 2010 已经过测试,并且正在使用一个支持 80 到 100 个并发 Service Manager 控制台的 Service Manager 管理服务器,测试根据本指南中…

读Lodash源码——chunk.js
The time is out of joint: O cursed spite, That ever I was born to set it right. --莎士比亚 最艰难的第一步 最近学习遇到了些障碍,浮躁浮躁又浮躁。很难静下心来做一件事,北京的寒风也难以让我冷静下来. 之前一直很想找个源码读读,太懒…

使用相对路径时,./、../、../../,代表的什么?
./ 当前目录。../ 父级目录。/ 根目录。 举个栗子: 页面引入js、css等文件: 1.如果about.jsp页面想引入common.css文件: 以about.jsp为基点寻找 直到 和static文件在同一级; 2.如果引入的外部css、js文件又引入image等时&#x…