当前位置: 首页 > news >正文

ElasticSearch学习笔记(三)Ubuntu 2204 server elasticsearch集群配置

如果你只是学习elasticsearch的增、删、改、查等相关操作,那么在windows上安装一个ES就可以了。但是你如果想在你的生产环境中使用Elasticsearch提供的强大的功能,那么还是建议你使用Linux操作系统。

本文以在Ubuntu 2204 server中安装elasticsearch 8.11为例向同学们演示如何在Linux操作系统中安装并配置Elasticsearch.

0.前置条件

0.1 准备三台服务器

可以是物理机也可以是虚拟机,三台服务器安装好ubuntu 2204 server,我的三台服务器都是在虚拟机中,以下是我的相关配置。

IP地址节点服务器配置
192.168.50.5node1Elasticsearch[master/data] kibana 8C 16G ubuntu2204
192.168.50.6node2Elasticsearch [master/data]8C 8G ubuntu2204
192.168.50.7node3Elasticsearch [master/data] 8C 8G ubuntu2204

0.2 配置好系统时区,保证3台服务器的时区一致。

0.3 关闭交换内存

修改/etc/fstab文件,将/swap.img那行注释掉,然后重启系统。
在这里插入图片描述
0.4.重命名系统主机名分别为node1,node2,node3,node4

hostnamectl set-hostname <node1>

检查自己的配置。
在这里插入图片描述
从上图可以看到我的准备好了三台服务器,分别为node1,node2,node3,三台服务器都在CST时区,并且关闭了交换内存。
0.5 修改sshd_config配置,允许root远程登录。

1.安装elasticsearch

在每个节点上执行下面的操作,使用deb包安装的elasticsearch 8.11.

⚠️ 安装elasticsearch需要使用普通用户。安装完成后,会在系统中自动添加一个elasticsearch用户和用户组。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.1-amd64.deb
sudo dpkg -i elasticsearch-8.11.1-amd64.deb

在这里插入图片描述
安装非常顺利,由于我们使用的deb包安装,所以安装非常的友好,并且安装完成后可以使用systemctl来管理我们的elasticsearch,下图是我三个节点安装成功的截图,大家一定要仔细阅读安装完成的信息。
在这里插入图片描述
在安装完成输出信息中同学们一定要注意以下几点信息。

  1. 默认安装启用身份验证和授权,并自动配置了传输层和HTTP层的TLS.
  2. 为内置超级用户生成了密码。
  3. 加入节点的命令。
  4. 为kibana实例生成注册令牌的命令。
  5. 启动systemctl服务的命令。

按照提示,我们在每个节点执行以下命令重载systemctl守护并将elasticsearch服务加入开机自启。

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch

2.配置node1上的elasticsearch

接下来的操作都是一些配置工作,所以这里我直接切换成root用户了。通过前面安装方式安装的elasticsearch配置文件为/etc/elasticsearch/elasticsearch.yml,接下来我们要经常和这个配置文件打交到。

vim /etc/elasticsearch/elasticsearch.yml

在这里插入图片描述
在节点1的elasticsearch配置我们主要修改以下几个配置项。

  1. 集群名称: cluster.name

    cluster.name: es-cluster
    

    集群中的每个节点的集群名称要保持一致。

  2. 节点名称:node.name: node-1

    node.name: node-1
    

    集群中每个节点的节点名称要保持唯一,比如分别为:node-1,node-2,node-3。

  3. 网络地址:network.host:

    network.host: 192.168.50.5
    

    network.host使用本机的IP地址

  4. 端口号:http.port:

    http.port: 9200
    

    这里保持默认的9200即可,也可以自定义这个端口,注意要大于1024小于65535,并且是系统未使用的端口。

  5. 集群初始化主节点:cluster.initial_master_nodes:

    cluster.initial_master_nodes: ["192.168.50.5"]
    

    这里默认使用主机名作为初始化主节点的配置,建议修改成主机IP。

修改好以上5个配置后,保存配置文件,其它的配置,同学们可以通过阅读配置说明自行修改。

3.启动node1上的elasticsearch

前面我们修改了node1上的配置文件,接下来使用下面的命令启动elasticsearch.

systemctl start elasticsearch

如果启动过程没有报错信息,就OK了,也可以使用以下命令查看elasticsearch的状态。

systemctl status elasticsearch

在这里插入图片描述

4.使用浏览器查看ES状态

在浏览器地址栏中输入https://<node-1.ip>:9200,就会打开ES的登录界面。
在这里插入图片描述
这里的用户名就是elastic,密码就是安装完成时输出信息中给出的密码,如果你不想使用默认密码,也可以使用下面的命令自定义elastic的密码。

/usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic

在这里插入图片描述
刷新es的登录页面,使用新的自定义密码就能登录了,登录后会显示ES集群的一些信息。
在这里插入图片描述

5.配置node2

node2的配置和node1基本相同,以下是node2的配置,按照前面的方法修改node2的elasticsearch.yml文件并保存退出。

vim /etc/elasticsearch/elasticsearch.yml

node2的配置项

cluster.name: es-cluster
node.name: node-2
network.host: 192.168.50.6
http.port: 9200
cluster.initial_master_nodes: ["192.168.50.6"]

⚠️ 配置完成后一定不要启动ES。

6.将node2加入集群

按照ES官方的方式将node2加入集群。

首先在node1上使用下面的命令生成集群令牌令牌。

/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node

在这里插入图片描述
然后在node2上使用下面的命令将node2加入集群。

/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token>

就是在node1上生成的那串字符。

/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token eyJ2ZXIiOiI4LjExLjEiLCJhZHIiOlsiMTkyLjE2OC41MC41OjkyMDAiXSwiZmdyIjoiZGE3ZjFiZGY1NWEzMGE0NDViNjQ2ZTc1NDc4YmQ0YmIyNjA2YzUwOGJkYmFmZWRmMDg1OTQ1ODdjOThmOWI2MCIsImtleSI6ImwtS2FVWklCU0ZNc1BNTm5haWRvOklRYlNyM29wU2pLZFA1Rk8za19oTmcifQ==

在这里插入图片描述
上图是我操作的截图,通过上面的操作我们已经将节点node2加入到集群了。

这里注意有一段非常重要的输出提示,我复制出来,后面还会用到。

This node will be reconfigured to join an existing cluster, using the enrollment token that you provided.
This operation will overwrite the existing configuration. Specifically:- Security auto configuration will be removed from elasticsearch.yml- The [certs] config directory will be removed- Security auto configuration related secure settings will be removed from the elasticsearch.keystore
Do you want to continue with the reconfiguration process [y/N]y

使用下面的命令启动node2上的Elasticsearch。

systemctl start elasticsearch

如果启动过程没有报错信息,说明node2已经加入到集群了,接下来我们就可以在浏览器中我们可以查看集群的状态了。
在这里插入图片描述

7.修改node3的配置

修改node3的配置项并保存,需要修改的配置项如下。

cluster.name: es-cluster
node.name: node-3
network.host: 192.168.50.7
http.port: 9200
#cluster.initial_master_nodes: ["node3"]
discovery.seed_hosts: ["192.168.50.5:9300"]

⚠️ 修改完成后保存退出,但是不要启动ES

8.将node3加入集群

我们可以按照node2加入集群的方法将node3加入集群,但是这里我想尝试使用另外一种方法将节点加入到集群。

在使用elasticsearch-reconfigure-node命令将node2加入节点时,有一段输出信息。

This node will be reconfigured to join an existing cluster, using the enrollment token that you provided.
This operation will overwrite the existing configuration. Specifically:- Security auto configuration will be removed from elasticsearch.yml- The [certs] config directory will be removed- Security auto configuration related secure settings will be removed from the elasticsearch.keystore
Do you want to continue with the reconfiguration process [y/N]y

上面的提示信息告诉我们命令elasticsearch-reconfigure-node会自动配置elasticsearch.yml,并删除certs目录中的文件以及elasticsearch.keystore.

其实就是使用node1 certs中的文件覆盖了node2 certs中的文件,node1 的elasticsearch.keystore覆盖了node2的elasticsearch.keystore文件。我们按照这个思路,让node1的相关文件覆盖node3相关文件。

scp /etc/elasticsearch/certs/* root@192.168.50.7:/etc/elasticsearch/certs/

在这里插入图片描述

scp /etc/elasticsearch/elasticsearch.keystore root@192.168.50.7:/etc/elasticsearch/

在这里插入图片描述
启动elasticsearch

systemctl start elasticsearch

如果没有报错信息,说明node3上的ES启动成功。

通过浏览器查看集群状态,发现node3已经加入了集群。
在这里插入图片描述

好了,今天的教程就到此为止,要给儿子做饭了,大家有问题可以留言给我,我看到会给大家回复了。
在这里插入图片描述

相关文章:

ElasticSearch学习笔记(三)Ubuntu 2204 server elasticsearch集群配置

如果你只是学习elasticsearch的增、删、改、查等相关操作&#xff0c;那么在windows上安装一个ES就可以了。但是你如果想在你的生产环境中使用Elasticsearch提供的强大的功能&#xff0c;那么还是建议你使用Linux操作系统。 本文以在Ubuntu 2204 server中安装elasticsearch 8.…...

基于STM32的简易交通灯proteus仿真设计(仿真+程序+设计报告+讲解视频)

基于STM32的简易交通灯proteus仿真设计(仿真程序设计报告讲解视频&#xff09; 仿真图proteus 8.9 程序编译器&#xff1a;keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;C0091 **1.**主要功能 功能说明&#xff1a; 以STM32单片机和数码管、LED灯设计简易交通…...

linux下新增加一块sata硬盘并使用

1&#xff09;确认新硬盘能被正确识别到 2&#xff09;对新硬盘进行分区 说明&#xff1a;fdisk指令中输入“m”&#xff0c;可以看到详细的指令含义。 3&#xff09;确认新创建的分区 5&#xff09;格式化新创建的分区 6&#xff09;挂载新分区并使用...

主从复制遇到的问题点

1.解决主从复制的配置问题 大致逻辑&#xff1a; 主库&#xff1a; 进入mysql的my.in文件&#xff0c;配置 server-id 1 log-bin mysql-bin log-bin D:/mysql/log binlog-do-db 数据库名 从库 进入mysql的my.in文件&#xff0c;配置 server-id 2 replicate-do-db 数据库名…...

Macbook ToDesk 无法连接网络

描述 网络连接的是 Wi-Fi&#xff0c;打开浏览器能跟正常浏览内容&#xff0c;说明 Wi-Fi 是正常的。 现象&#xff1a;显示网络连接失败&#xff0c;一直无法登陆&#xff01; 检查防火墙是没有阻止ToDesk 的任何连接&#xff0c;说明防火墙也是正常的。 解决 检查登录项&a…...

C++-容器适配器- stack、queue、priority_queue和仿函数

目录 1.什么是适配器 2.deque 1.简单了解结构 2.deque的缺陷 3.为什么选择deque作为stack和queue的底层默认容器 3.stack&#xff08;栈&#xff09; 4.queue&#xff08;队列&#xff09; 5.仿函数 6.priority_queue&#xff08;优先级队列&#xff09;&#xff08;堆…...

C++游戏开发指南

C游戏开发指南 引言 在这个数字娱乐时代&#xff0c;游戏行业炙手可热&#xff0c;你是否也憧憬着能亲自开发出一款独特的游戏呢&#xff1f;你是否想过&#xff0c;为什么越来越多的开发者选择C作为他们的开发语言&#xff1f;没错&#xff0c;C不仅是一种高效的编程语言&am…...

k8s的pod管理及优化

资源管理介绍 资源管理方式 命令式对象管理&#xff1a;直接用命令去操作kubernetes资源 命令式对象配置&#xff1a;通过命令配置和配置文件去操作kubernets资源 声明式对象配置&#xff1a;通过apply命令和配置文件去操作kubernets资源 命令式对象管理&#xff1a; 资源类…...

HTML 常用的块级元素和行内元素

1. 常用的块级元素 块级元素具有如下特点&#xff1a; 占据父容器的整行宽度。通常从新的一行开始。可以包含其他块级元素和行内元素。 常用的块级元素&#xff1a; div&#xff1a;通用的容器&#xff0c;用于布局和分块内容。 h1 到 h6&#xff1a;标题标签&#xff0c;定义…...

js短路求值

短路求值&#xff08;short-circuit evaluation&#xff09;是指在逻辑运算中&#xff0c;如果前面的表达式已经能够确定整个表达式的结果&#xff0c;后面的表达式就不会被执行。短路求值常见于逻辑运算符 &&&#xff08;与&#xff09;和 ||&#xff08;或&#xff0…...

react 知识点汇总(非常全面)

React 是一个用于构建用户界面的 JavaScript 库&#xff0c;由 Facebook 开发并维护。它的核心理念是“组件化”&#xff0c;即将用户界面拆分为可重用的组件。 React 的组件通常使用 JSX&#xff08;JavaScript XML&#xff09;。JSX 是一种 JavaScript 语法扩展&#xff0c;…...

如何加密重要U盘?U盘怎么加密保护?

在日常生活中&#xff0c;我们常常使用U盘来存储和传输重要文件。然而&#xff0c;U盘的便携性也意味着它容易丢失或被盗。为了保护U盘中的数据安全&#xff0c;我们需要对U盘进行加密。本文将为您介绍如何加密重要U盘&#xff0c;以及U盘加密保护的方法。 BitLocker BitLocke…...

js编写一个中奖程序

好的&#xff0c;以下是一个用JavaScript编写的抽奖程序&#xff0c;它根据给定的概率来决定奖项。我们将使用随机数生成器来模拟抽奖过程。 function drawPrize() {const prizes [{ name: 特等奖, probability: 0.00000001 },{ name: 一等奖, probability: 0.00000003 },{ n…...

Mybatis-plus的基础用法

文章目录 1. 核心功能1.1 配置与编写规则1.2 条件构造器1.3 自定义SQL1.4 IService接口1.4.1 Lambda方法1.4.2 批量新增 1.5 分页查询 2. 拓展功能2.1 代码生成器2.2 DB静态工具2.3 逻辑删除2.4 枚举处理器 参考 1. 核心功能 1.1 配置与编写规则 Maven依赖&#xff1a; <…...

【网络篇】计算机网络——应用层详述(笔记)

目录 一、应用层协议原理 1. 进入应用层 2. 网络应用程序体系结构 &#xff08;1&#xff09;客户-服务器体系结构&#xff08;client-server architecture&#xff09; &#xff08;2&#xff09; P2P 体系结构&#xff08;P2P architecture&#xff09; 3. 进程间通讯 …...

力扣10.9

3171. 找到按位或最接近 K 的子数组 给你一个数组 nums 和一个整数 k 。你需要找到 nums 的一个 子数组 &#xff0c;满足子数组中所有元素按位或运算 OR 的值与 k 的 绝对差 尽可能 小 。换言之&#xff0c;你需要选择一个子数组 nums[l..r] 满足 |k - (nums[l] OR nums[l 1…...

@RequestMapping指定请求方式的用法

RequestMapping("/depts")public Result list() {log.info("查询全部部分数据");return Result.success();}上面代码没有指定请求方式&#xff0c;通过postman测试&#xff0c;可以用GET&#xff0c;POST&#xff0c;Delete的方式调用。 要想指定请求方式…...

卷积神经网络细节问题及知识点

一、Batch Normalization Batch Normalization&#xff08;BN&#xff0c;批归一化&#xff09; 是深度学习中的一种技术&#xff0c;主要用于加速神经网络的训练过程&#xff0c;同时提高网络的稳定性和收敛速度。它通过对每一层的输出进行归一化&#xff0c;减少梯度消失和梯…...

【图论】(一)图论理论基础与岛屿问题

图论理论基础与岛屿问题 图论理论基础深度搜索&#xff08;dfs&#xff09;广度搜索&#xff08;bfs&#xff09;岛屿问题概述 岛屿数量岛屿数量-深搜版岛屿数量-广搜版 岛屿的最大面积孤岛的总面积沉没孤岛建造最大人工岛水流问题岛屿的周长 图论理论基础 这里仅对图论相关核…...

PhotoMaker部署文档

一、介绍 PhotoMaker&#xff1a;一种高效的、个性化的文本转图像生成方法&#xff0c;能通过堆叠 ID 嵌入自定义逼真的人类照片。相当于把一张人的照片特征提取出来&#xff0c;然后可以生成你想要的不同风格照片&#xff0c;如写真等等。 主要特点&#xff1a; 在几秒钟内…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...