Linux中使用Docker安装ElasticSearch7.10.x集群
使用Docker安装ElasticSearch7.10.x单节点请访问这里
一、集群环境说明
服务器IP地址 |
---|
192.168.137.1,192.168.137.2,192.168.137.3 |
二、前期准备
1. 拉取镜像
docker pull elasticsearch:7.10.1
2. 首先需要创建一个用于生成秘钥的初始容器,如下是命令:
docker run -d --user=root --privileged=true --name elasticsearch-temp -p 9200:9200 \
-p 9300:9300 --ulimit nofile=65536:65536 \
-v /home/elasticsearch_temp/data:/usr/share/elasticsearch/data \
-v /home/elasticsearch_temp/logs:/usr/share/elasticsearch/logs \
-e ES_JAVA_OPTS="-Xms2G -Xmx2G" \
-e discovery.seed_hosts=["192.168.137.1"] elasticsearch:7.10.1
3. 进入容器内部,并执行如下命令生成秘钥:
#进入容器操作系统
1. docker exec -it elasticsearch-temp /bin/bash
#生成秘钥
2. bin/elasticsearch-certutil cert
#一路回车直到创建完成,生成的目录默认是(/usr/share/elasticsearch/config/elastic-certificates.p12)
#退出容器,并将容器内此秘钥文件复制出来(命令最后有个点,表示复制到当前目录)
3. docker cp elasticsearch-temp:/usr/share/elasticsearch/config/elastic-certificates.p12 .
说明(重要): 这里复制出来的elastic-certificates.p12文件,需要同时放到剩余两台服务器上。
三、开始部署
1. 创建ElasticSearch相关文件夹
说明: 以服务器192.168.137.1为例,其他两台服务器操作是一样的
#1.以/data目录为例
mkdir -p /data/elasticsearch7-10-1/{data,logs,plugins}
2. 创建配置文件
vim elasticsearch.yml
以下为配置文件内容(其他服务器仅需修改node.name的值和network.publish_host的值为本机ip即可)
cluster.name: es-cluster
node.name: node-1
node.master: true
node.data: true
network.bind_host: 0.0.0.0
network.publish_host: 192.168.137.1
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts: ["192.168.137.1:9300","192.168.137.2:9300","192.168.137.3:9300"]
cluster.initial_master_nodes: ["node-1"]
xpack.sql.enabled: false
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
3. 将步骤1创建的文件夹授权,否则启动会报错无权限
#到ElasticSearch的根目录的上级目录,因为需要给整个elasticsearch7-10-1文件夹授权
cd /data/
#授权
chmod -R 777 elasticsearch7-10-1/
4. 编写启动脚本方便留痕
- 进入ElasticSearch主目录:
cd /home/elasticsearch7-10-1
- 创建脚本文件
vim create_es.sh
- create_es.sh内容如下:
docker run -d --user=root --privileged=true \
--name elasticsearch-1 -p 9200:9200 -p 9300:9300 --ulimit nofile=65536:65536 \
-v ${PWD}/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v ${PWD}/elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12 \
-v ${PWD}/logs:/usr/share/elasticsearch/logs \
-v ${PWD}/plugins:/usr/share/elasticsearch/plugins \
-v ${PWD}/data:/usr/share/elasticsearch/data \
-e ES_JAVA_OPTS="-Xms2G -Xmx2G" elasticsearch:7.10.1
属性说明:
属性配置 | 说明 |
---|---|
ulimit nofile=65536:65536 | 设置进程可用资源,如果不设置,启动会报错提示 |
discovery.type=single-node | 设置模式为单节点模式启动 |
ES_JAVA_OPTS=“-Xms2G -Xmx2G” | 设置ElasticSearch中的Java虚拟机环境变量 |
–user=root | 使用root用户 |
-v ${PWD}/xxxxx:/yyyyy | 表示将当前目录的xxxxx映射到docker容器的yyyyyy位置 |
- 将【前期准备-步骤3】中从docker容器中复制出来的elastic-certificates.p12放到/home/elasticsearch7-10-1目录下
四、启动测试
1. 分别启动三台服务器上的ElasticSearch服务
sh create_es.sh
注意: 如果提示max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
这个错误的话,需要进行如下设置:
#修改文件
sudo vim /etc/sysctl.conf
#添加参数
vm.max_map_count = 262144
#重新加载
sysctl -p
2. 打开浏览器访问http://192.168.137.1:9200
地址
如果能正常打开ElasticSearch的登录页面并弹窗让你输入用户名密码,即表示启动成功
五、设置自定义密码
1.任选其中一台服务器,进入ElasticSearch的容器中
docker exec -it elasticsearch-1 /bin/bash
2. 执行设置密码命令(在任意一台中执行即可,其他节点会自动同步)
bin/elasticsearch-setup-passwords interactive
说明: 为每个用户设置密码,并且会让你输入两边密码,需要保持输入的两次密码保持一致。
3. 设置完成后,再次访问http://192.168.137.1:9200
地址,在弹出的提示框中:
用户名:elastic
密 码:你在上一步中为elastic用户设置的密码
输入正确的用户名密码之后将看到如下界面:
4. 查看集群状态
访问地址http://192.168.137.1:9200/_cluster/health?pretty
上图红框中status状态为green表示健康,node.total表示节点数量为3个,node.data表示数据节点为3个。
如此ElasticSearch集群就搭建完成了 喜欢的就点个关注再走吧~
相关文章:

Linux中使用Docker安装ElasticSearch7.10.x集群
使用Docker安装ElasticSearch7.10.x单节点请访问这里 一、集群环境说明 服务器IP地址192.168.137.1,192.168.137.2,192.168.137.3 二、前期准备 1. 拉取镜像 docker pull elasticsearch:7.10.12. 首先需要创建一个用于生成秘钥的初始容器࿰…...

electron 左上角图标 dev(开发环境)可显示 build(打包)后无法显示
先说解决方法,用于作为图标的ico文件需要富集多种尺寸,必须包含256*256,且同时应当包含其他更小的尺寸。 例如: 接下来解释一下这么做的原因 ico是Iconfile的缩写,是Windows计算机中的一种图标文件格式,…...

全球与中国BGO晶体市场:增长趋势、竞争格局与前景展望
BGO晶体,全名为Bismuth Germanate Scintillation Crystal(铋锗酸盐闪烁晶体),是一种用于探测放射性粒子和射线的闪烁晶体材料。它的主要成分是铋氧化物(Bi4Ge3O12),其中铋和锗的特性使得这种晶体…...

华三路由交换技术基础——计算机网络基础
计算机网络: 定义:一组具有自治权的计算机互联的集合 作用: 1.共享信息资源 2.分解式处理信息 4.负载均衡 5.综合信息服务 它是计算机技术与通信技术的两个领域的结合 一,计算机网络中的基本概念: 局域网ÿ…...
Docker搭建RK3568开发环境
推荐:Ubuntu 20.04 版本 Docker加速 # 编辑 Docker 配置文件 $ sudo vim /etc/docker/daemon.json# 加入以下配置项 {"registry-mirrors": ["https://dockerproxy.com","https://hub-mirror.c.163.com","https://mirror.baidu…...

【GAMES202】Real-Time Ray Tracing 1—实时光线追踪1
一、前言 这篇我们开始新的话题—Real-Time Ray Tracing简称RTRT,也就是实时光线追踪,关于光线追踪,我们已经不止一次提到过它的优点,无论是软阴影还是全局光照,光线追踪都很容易做,唯一的缺点就是速度太慢…...

Linux修复损坏的文件系统
如何判断文件系统是否损坏 当文件系统受损时,将会出现一些明显的迹象。例如,文件或文件夹无法访问、文件大小异常、系统启动慢或无法启动等。此外,系统也可能发出一些错误信息,如"Input/output error"、"Filesyst…...

三分钟学会一个新技能——使用Java操作Redis
目录 1、前置准备操作 1.1、为什么要进行前置准备操作 1.2、本地如何访问到云服务上Redis的6379端口号 1.3、配置步骤: 2、配置后本地主机如何操作 3、常用命令举例 3.1、通用命令举例 3.2、string相关命令举例 3.3、hash相关命令举例 3.4、list相关命令…...
Java学习笔记------内部类
内部类的定义: 在一个类的里面再定义一个类 内部类的使用场景: 内部类表示的事物是外部类的一部分(B类表示的事物是A类的一部分,且B单独存在没有意义)内部类单独出现没有任何意义 内部类的访问特点 内部类可以直接…...

面试题:问js的forEach和map的区别
前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 【国庆头像】- 国庆爱国 程序员头像!总有一款适合你! 前言 为什么要写这么一篇文章,原因是今天下午水群的时候&…...

Hadoop设置固定ip无效的解决办法
今天配置Hadoop的时候,执行vi /etc/sysconfig/network-scripts/ifcfg-ens33修改网络配置文件后,一切正常,但重启后IP改变了,并且在修改以及重启网络连接数次后,IP依旧不按照我在ifcfg-ens33中配置的那样,检…...

论文解读 | 用于3D对象检测的PV-RCNN网络原创
原创 | 文 BFT机器人 01 背景 本文的背景涉及到3D物体检测,这是一个在自动驾驶和机器人等领域应用广泛的重要问题。在这些领域,LiDAR传感器被广泛用于捕捉3D场景信息,生成不规则且稀疏的点云数据。这些点云数据提供了理解和感知3D场景的关键…...

kali安装volatility及插件mimikatz
1.准备工作 kali安装pip2 wget https://bootstrap.pypa.io/pip/2.7/get-pip.py python2 get-pip.py 查看pip2版本 python2 -m pip -v pip2安装升级 pip2 install --upgrade setuptools 安装2个库 pip2 install construct2.10.54 pip2 install pycryptodome 下载文件d…...
什么是阻塞队列?如何使⽤阻塞队列来实现⽣产者-消费者模型?哪个阻塞队列最常用?
阻塞队列 阻塞队列(Blocking Queue)是一种特殊类型的队列,它具有阻塞特性,即当队列为空时,试图从队列中取出元素的操作会被阻塞,直到队列中有元素可取。同样,当队列已满时,试图将元素放入队列的操作也会被阻塞,直到队列有空闲空间。 JDK 7引入了7个阻塞队列,它们都…...

Bean拷贝组件(注解驱动)方案设计与落地
一、背景 数据流转在各层之间的过程,应当是改头换面的,字段属性数量,属性名称(一般不变,但也有重构时出现变化的情况),类型名称(普遍变化例如BO、VO、DTO)。对于转换的业…...

hive的建表语句
hive建表语句CREATE TABLE ccwn_zh_event_push (customerid string,cardnumber string,accountnumber string,eventcode string,eventtime string,activities string,activityRefuseCode string,lables string)PARTITIONED BY(dt string)ROW FORMAT SERDE org.apache.hadoop.hi…...

提升效率:PostgreSQL准确且快速的数据对比方法
作为一款强大而广受欢迎的开源关系型数据库管理系统,PostgreSQL 在数据库领域拥有显著的市场份额。其出色的可扩展性、稳定性使其成为众多企业和项目的首选数据库。而在很多场景下(开发|生产环境同步、备份恢复验证、数据迁移、数据合并等)&a…...

【轻NAS】Windows搭建可道云私有云盘,并内网穿透公网访问
文章目录 1.前言2. Kodcloud网站搭建2.1. Kodcloud下载和安装2.2 Kodcloud网页测试 3. cpolar内网穿透的安装和注册4. 本地网页发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6.结语 1.前言 云存储作为近些年兴起的概念,成功吸引了各大互联网厂商下场&…...

计算机网络 第一章:概述
目录 一.因特网概述 1.1网络、互联网(互连网)和因特网 1.2internet与Internet的区别 1.3因特网服务提供者ISP(Internet Service Provider) 1.4因特网组成 二.三种交换方式 2.1电路交换 2.2分组交换(重点) 2.3报文交换 三.计算机网络的定义和分类 四.计算机网络的性能…...
centos7 firewalld ip转发设置、安装docker-compose出现错误、docker-compose部署Yapi
一 centos7 firewalld ip转发设置 #!/bin/bash #开启系统路由模式功能 vim /etc/sysctl.conf #添加下面一行 net.ipv4.ip_forward1 #运行这个命令会输出上面添加的那一行信息,意思是使内核修改生效 sysctl -p #开启firewalld systemctl start firewalld #防火墙开启…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...