Elasticsearch使用系列-Docker搭建Elasticsearch集群
Elasticsearch使用系列-ES增删查改基本操作+ik分词
Elasticsearch使用系列-基本查询和聚合查询+sql插件
Elasticsearch使用系列-.NET6对接Elasticsearch
Elasticsearch使用系列-Docker搭建Elasticsearch集群
一、系统环境准备
这里准备三台机器,系统均为CentOS7.9:172.16.2.84,172.16.2.85,172.16.2.86
1.调高jvm线程数限制
#修改sysctl.conf
vi /etc/sysctl.conf #修改max_map_count调大,如果没有这个设置,则新增一行
vm.max_map_count=262144 #改完保存后, 执行下面命令让sysctl.conf文件生效
sysctl -p
2.安装docker环境
参照:https://www.cnblogs.com/wei325/p/15139701.html
二、docker挂载方式搭建集群
1.配置文件
es1配置文件 elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
# 配置es的集群名称,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群
cluster.name: elasticsearch
# 节点名称
node.name: node-1
# 指定该节点是否有资格被选举成为node
node.master: true
# 指定初始主节点
cluster.initial_master_nodes: ["172.16.2.84:9300"]
# 指定该节点是否存储索引数据,默认为true
node.data: true
# 设置绑定的ip地址还有其他节点和该节点交换的ip地址,本机ip
network.host: 0.0.0.0
network.publish_host: 172.16.2.84
# 指定http端口
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["172.16.2.84:9300","172.16.2.84:9300","172.16.2.85:9300"]
# 如果要使用head,那么需要解决跨域问题,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
es2配置文件 elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
# 配置es的集群名称,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群
cluster.name: elasticsearch
# 节点名称
node.name: node-2
# 指定该节点是否有资格被选举成为node
node.master: true
# 指定初始主节点
cluster.initial_master_nodes: ["172.16.2.84:9300"]
# 指定该节点是否存储索引数据,默认为true
node.data: true
# 设置绑定的ip地址还有其他节点和该节点交换的ip地址,本机ip
network.host: 0.0.0.0
network.publish_host: 172.16.2.85
# 指定http端口
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["172.16.2.84:9300","172.16.2.85:9300","172.16.2.85:9300"]
# 如果要使用head,那么需要解决跨域问题,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
es3配置文件 elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
# 配置es的集群名称,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群
cluster.name: elasticsearch
# 节点名称
node.name: node-3
# 指定该节点是否有资格被选举成为node
node.master: true
# 指定初始主节点
cluster.initial_master_nodes: ["172.16.2.84:9300"]
# 指定该节点是否存储索引数据,默认为true
node.data: true
# 设置绑定的ip地址还有其他节点和该节点交换的ip地址,本机ip
network.host: 0.0.0.0
network.publish_host: 172.16.2.86
# 指定http端口
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["172.16.2.84:9300","172.16.2.84:9300","172.16.2.86:9300"]
# 如果要使用head,那么需要解决跨域问题,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
注意:配置冒号后面都有一个空格
2.创建挂载目录
为了防止容器删掉数据丢失,需要进行数据文件挂载
#创建es配置目录
mkdir /home/es/config -p
#创建es数据目录
mkdir /home/es/data
#创建es插件目录
mkdir /home/es/plugins
#授权目录
chmod -R 777 /home/es
然后把上面的elasticsearch.yml配置文件分别放到三台机器的 /home/es/config目录下
3.docker启动命令
三台机器分别启动执行命令
1.拉取镜像
#拉取es镜像,指定版本
docker pull elasticsearch:7.16.3
2.启动es
3台机器分别执行以下命令,注意,先启动主节点,这里是172.16.2.84机器。
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d --name es7.16.3 -p 9200:9200 -p 9300:9300 -v /home/es/data:/usr/share/elasticsearch/data -v /home/es/plugins:/usr/share/elasticsearch/plugins -v /home/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.16.3
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" 因为测试机器,把内存设为256m
-d 后台运行
--name 给启动的容器起名称
-p 9200:9200 -p 9300:9300 映射docker的端口,9200是http的端口,9300是内部通讯的端口
-v 目录挂载
elasticsearch:7.16.3 es镜像名称,用这个镜像启动为容器
集群搭建完成!
三、es head插件查看集群状态
kibana也能查看es的集群状态,但是没那么直观,这里安装head浏览器插件查看
1.打开连接
谷歌浏览器访问:http://extb.cqttech.com/search/elasticsearch%2520head
根据提示下载安装谷歌双核浏览器

下面的位置打开使用

输入集群中任意一个es地址都可以

Elasticsearch使用系列-Docker搭建Elasticsearch集群的更多相关文章
- Docker 搭建 etcd 集群
阅读目录: 主机安装 集群搭建 API 操作 API 说明和 etcdctl 命令说明 etcd 是 CoreOS 团队发起的一个开源项目(Go 语言,其实很多这类项目都是 Go 语言实现的,只能说很 ...
- Docker搭建PXC集群
如何创建MySQL的PXC集群 下载PXC集群镜像文件 下载 docker pull percona/percona-xtradb-cluster 重命名 [root@hongshaorou ~]# ...
- Docker搭建RabbitMQ集群
Docker搭建RabbitMQ集群 Docker安装 见官网 RabbitMQ镜像下载及配置 见此博文 集群搭建 首先,我们需要启动运行RabbitMQ docker run -d --hostna ...
- docker搭建etcd集群环境
其实关于集群网上说的方案已经很多了,尤其是官网,只是这里我个人只有一个虚拟机,在开发环境下建议用docker-compose来搭建etcd集群. 1.拉取etcd镜像 docker pull quay ...
- docker 搭建zookeeper集群和kafka集群
docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之 ...
- 使用Docker搭建Spark集群(用于实现网站流量实时分析模块)
上一篇使用Docker搭建了Hadoop的完全分布式:使用Docker搭建Hadoop集群(伪分布式与完全分布式),本次记录搭建spark集群,使用两者同时来实现之前一直未完成的项目:网站日志流量分析 ...
- 使用Docker搭建Hadoop集群(伪分布式与完全分布式)
之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自学了Docker也来操练一把,用Docker来构建Hadoop集群,这里搭建的Hado ...
- 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现
庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介 在第七篇文章<庐山真面目之七微服务架构Consul ...
- 通过docker搭建ELK集群
单机ELK,另外两台服务器分别有一个elasticsearch节点,这样形成一个3节点的ES集群. 可以先尝试单独搭建es集群或单机ELK https://www.cnblogs.com/lz0925 ...
随机推荐
- [ SQLAlchemy ] 自我引用型的多对多关系(Self-Referential Many-to-Many Relationship)理解
参考: https://www.jianshu.com/p/2c6c76f94b88 https://madmalls.com/blog/post/followers-and-followeds/ 实 ...
- 使用 arguments 对象
arguments 对象表示参数集合,它是一个伪类数组,拥有与数组相似的结构,可以通过数组下标的形式访问函数实参值,但是没有基础 Array 的原型方法. //函数没有定义形参,但是在函数体内通过 a ...
- 新增访客数量MR统计之数据库准备
关注公众号:分享电脑学习回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新)云盘目录说明:tools目录是安装包res 目录是每一个课件对应的代码和资源等doc 目录是一 ...
- 【Java】多态性
文章目录 多态性 向下转型 多态性 可以理解为一个事物的多种形态. 对象的多态性:父类的引用指向子类的对象.只适用于方法,不适用于属性(编译和运行都看左边) 总结:对于对象的多态性,编译,看左边:运行 ...
- C# 余一问题 奇偶数求和问题
编写程序,用 while 循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至少有多少个. using System; ...
- Ajax_Post用法
Ajax_Post用法 post方法的用法其实跟get是大同小异的 唯一不同的地方就是我们需要修改server.js的文件 只需要将get修改为post即可 那么我为了方便操作我这里选择的是直接在下面 ...
- golang中数组指针与指针数组的区别实现
指针数组和数组的指针,指的是两个不同的东西. 指针数组是有指针组成的数组,数组的指针是一个数组的指针. package main import "fmt" const MAX ...
- golang中的udp编程
1. udp server package main import ( "fmt" "net" ) func main() { // udp server li ...
- golang中map原理剖析
1. golang中的map有自己的一套实现原理,其核心是由hmap和bmap两个结构体实现的 2. 初始化map package main func main() { // 初始化一个可容纳10个 ...
- Centos配置yum本地源最简单的办法
有关centos配置yum本地源的方法 一.前提 先连接镜像 然后在命令行输入如下命令 mount /dev/sr0 /mnt cd /etc/yum.repos.d/ ls 之后会看到如下的界面 二 ...