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. 编写启动脚本方便留痕

  1. 进入ElasticSearch主目录:
cd /home/elasticsearch7-10-1
  1. 创建脚本文件
vim create_es.sh
  1. 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位置
  1. 将【前期准备-步骤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集群就搭建完成了 喜欢的就点个关注再走吧~

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

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

相关文章

【SpringMVC】自定义注解与AOP结合使用

目录 一、SpringMVC之自定义注解 1.1 Java注解简介 1.2 为什么要用注解 1.3 注解的分类 ⭐ 1.3.1 JDK基本注解 1.3.2 JDK元注解 1.3.3 自定义注解 1.4 自定义注解三种使用案例 1.4.1 案例一(获取类与方法上的注解值) 1.4.2 案例二&#xff0…

SPPNet:金字塔网络

文章目录 SPPNet解决的问题SPPNet结构Bag-of-WordsSPP的结构与插入的位置目标检测任务SPPNet的训练方法Single-size trainingMulti-size training对比实验分类任务 ImageNet 2012数据集目标检测Pascal VOC 2007数据集SPP结构是由提出ResNet的何大神在论文《Spatial Pyramid Poo…

【STL容器】vector

文章目录 前言vector1.1 vector的定义1.2 vector的迭代器1.3 vector的元素操作1.3.1 Member function1.3.2 capacity1.3.3 modify 1.4 vector的优缺点 前言 vector是STL的容器,它提供了动态数组的功能。 注:文章出现的代码并非STL库里的源码&#xff0c…

包管理工具--》发布一个自己的npm包

包管理工具系列文章目录 一、包管理工具--》npm的配置及使用(一) 二、包管理工具--》npm的配置及使用(二) 三、包管理工具--》发布一个自己的npm包 四、包管理工具--》yarn的配置及使用 五、包管理工具--》其他包管理器之cnpm…

花见Live Wallpaper Themes 4K Pro for mac(4k视频壁纸)

如果你希望让自己的Mac桌面焕发活力,那么Live Wallpaper & Themes 4K Pro正是一款值得尝试的软件。它提供了丰富的超高清4K动态壁纸和主题,可以让你轻松打造出个性化的桌面环境。 这款软件拥有众多令人惊叹的功能。其中最值得一提的是,它…

视频监控/安防监控/AI视频分析/边缘计算EasyCVR平台如何调取登录接口获取token?

安防视频监控管理平台/视频汇聚/视频云存储平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、云存储、AI智能分析等,视频监控智能分析平台EasyCVR融合性强、…

Vue3修改数组问题

Vue3修改数组问题 1. reactive2. ref总结 vue3中使用组合式式API时定义响应式数据需要使用reactive或者ref,两者使用时有些许不同,下面通过重新赋值数组来说明两者的不同 1. reactive 主要用来定义复杂一些的响应式数据 先清空再赋值 const datas reactive([{id:1,name: 孙…

DataGrip 2023 年下载、安装教程、亲测可用

文章目录 前言1. 下载2. 安装3、DataGrip 常用操作4 推荐阅读 前言 DataGrip 是 JetBrains 发布的多引擎数据库环境,支持 MySQL 和 PostgreSQL,Microsoft SQL Server 和 Oracle,Sybase,DB2,SQLite,还有 Hy…

使用dockerfile文件部署Python+PyWebIO项目

1、安装docker 教程详见之前的内容。https://blog.csdn.net/weixin_44691253/category_12101661.html 2、打包好Python项目 之前的文章中有提到我编写测试工具使用的框架:PythonRequestsPyWebIO框架详解,编写测试工具提高团队测试效率 打包项目时&am…

org.apache.flink.table.api.TableException: Sink does not exists

FlinkSQL_1.12_用DDL实现Kafka到MySQL的数据传输_实现按照条件进行过滤写入MySQL_flink从kafka拉取数据并过滤数据写入mysql_旧城里的阳光的博客-CSDN博客 参考这篇文章,写了kafka到mysql的代码例子,因为自己改了表结构,运行下面代码&#x…

Ceph入门到精通-Macvlan网络模式

Docker中的Macvlan网络模式提供了一种将容器直接连接到宿主机网络的方式&#xff0c;使得容器可以拥有自己的MAC地址和与宿主机网络的直接连接。以下是使用Macvlan网络模式的一般步骤&#xff1a; 创建Macvlan网络&#xff1a; docker network create -d macvlan --subnet<s…

Java中的队列Queue

Queue(队列)是一种在计算机科学中常见的数据结构,它基于先进先出(FIFO)的原则,即最先进入队列的元素最先出队。在Java中,Queue是一个接口,定义了一组操作队列的方法,而具体的实现类可以选择性地实现这些方法。 以下是Queue的一些常见用途和操作: 添加元素: 使用off…

【openscreen】FrameList的插入

新版本也有此代码 E:\chromium\src\media\cast\test\receiver\frame_buffer.cc Framer 类的代码都没加锁。 FrameList :frame_id 和 FrameBuffer 的对应关系 typedef std::map<uint32, linked_ptr<FrameBuffer> > FrameList;Framer 管理 FrameList bool Framer::

淘宝双11数据分析与预测课程案例中(林子雨)错误点总结

问题一&#xff1a;可视化代码中男女买家各个年龄段对比散点图中数值不显示以及坐标不正确问题如下图 解决方法&#xff1a; 1修改坐标 2修改数值 修改后散点图 问题二&#xff1a;各省份的总成交量对比中地图显示不出来&#xff0c;因为该部分代码源码中没有需要自己编写…

Python3.11教程6:标准库简介1——os、shutil、sys、random、time、datetime、 threading

文章目录 一、 文件和目录处理模块1.1 os模块1.2 shutil 模块1.3 文件通配符glob1.4 stat 二、 sys模块2.1 命令行参数列表2.2 -c和-m选项2.3 argparse2.3.1 argparse使用逻辑2.3.2 add_argument()语法 三、 数学3.1 math3.2 random3.3 numpy生成随机数 四、 日期和时间4.1 tim…

排序算法-----插入排序

目录 前言&#xff1a; 插入排序 原理图 代码实现 分析总结 二分法插入排序 代码实现 前言&#xff1a; 嗨嗨^_^&#xff0c;米娜桑&#xff0c;今天我们继续学习排序算法中的插入排序&#xff0c;激不激动&#xff0c;兴不兴奋呢&#xff01;好了废话不多说&#xff0c;…

RFID服装管理系统改善零售供应链

随着时尚零售业的竞争日益激烈&#xff0c;RFID技术正快速地改变着服装管理的方式。我们将探讨RFID服装管理系统的核心优点&#xff0c;以及如何在零售供应链中充分利用它。 首先&#xff0c;让我们了解一下RFID技术是什么。RFID是一种无线通信技术&#xff0c;通过使用RFID标…

国家网络安全周 | 金融日,一起 get金融行业数据安全

2023国家网络安全宣传周 热度一直在持续&#xff01; 9月15日是国家网络安全宣传金融日。 目前随着国际形势愈发严峻&#xff0c;金融机构基础设施的全面数字化升级&#xff0c;带来了全新的安全问题。数据安全不单是技术问题&#xff0c;更是已经成为一个关系社会稳定发展的…

【算法专题突破】滑动窗口 - 水果成篮(13)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后&#xff1a; 1. 题目解析 题目链接&#xff1a;904. 水果成篮 - 力扣&#xff08;Leetcode&#xff09; 题目有很长一段话&#xff0c;但是我们读一遍题目可以提炼转化出题目的要求 &#xff1a; 其实就是找出一个最长…

怎么样把下载到的补丁集成到Win10 ISO镜像中?

怎么样把下载到的补丁集成到Win10 ISO镜像中&#xff1f; 我们需要使用Dism 命令来进行&#xff0c;Win10中已经内置dism 命令如下&#xff1a; 1、首先挂载镜像命令&#xff0c;其中盘符自己更改 dism /mount-wim /wimfile:"i:\install.wim" /index:1 /mountdir:&q…