ElasticSearch集群环境

ElasticSearch集群环境

1、Linux单机

下载地址:LINUX X86_64 (elastic.co)

下载之后进行解压

tar -zxf elasticsearch-7.8.0-linux-x86_64.tar.gz 

image-20240507095707572

名字太长了改个名字改成es

mv elasticsearch-7.8.0 es

image-20240507095749658

因为安全问题,Elasticsearch 不允许 root 用户直接运行,所以要在每个节点中创建新用户es

useradd es
password es

修改es文件的所有者为es

chown -R es:es /opt/es

image-20240507165740327

修改配置文件

修改/es/config/elasticsearch.yml 文件,添加以下配置

cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

image-20240507103642070

修改/etc/security/limits.conf,在文件的尾行增加每个进程可以打开的文件数的限制

es soft nofile 65536
es hard nofile 65536

image-20240507164456424

修改/etc/security/limits.d/20-nproc.conf,和上面的限制一样还是限制每个进程可以打开的文件数以及操作系统级别对每一个用户创建的进程数的限制。

es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
# 注:* 带表 Linux 所有用户名称

image-20240507164959626

修改/etc/sysctl.conf

# 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360

image-20240507165159710

重新加载一下系统配置文件

sysctl -p

image-20240507165820949

先切换为es用户然后到es目录下启动es

su es
bin/elasticsearch

image-20240507170217353

现在虚拟机中的浏览器访问一下9200端口,出现node-1节点的相关信息访问成功

image-20240507171018837

把防火墙关闭之后使用本地的浏览器访问也能显示json串

image-20240507171245863

linux单机的就这样结束

2、Linux集群

linux中开几个文件把端口信息改掉就好

这里因为要重复三次一样的解压、改名、赋予权限的操作太麻烦,直接写一个脚本自动执行。

#!/bin/bash  
#注意:解压缩和命名操作均在当前文件夹下执行
# 检查是否存在要解压的文件  
if [ ! -f "elasticsearch-7.8.0-linux-x86_64.tar.gz" ]; then  echo "elasticsearch-7.8.0-linux-x86_64.tar.gz 文件不存在,请检查文件路径。"  exit 1  
fi  
# 设置目标用户和组(这里es用户和组已经存在)  
TARGET_USER="es"  
TARGET_GROUP="es"  # 循环两次以创建esnode2和esnode3  
for i in {1..2}; do  # 解压缩文件(如果目录已存在,则先删除)  if [ -d "elasticsearch-7.8.0" ]; then  rm -rf elasticsearch-7.8.0  fi  tar -zxf elasticsearch-7.8.0-linux-x86_64.tar.gz  # 重命名目录  NEW_NAME="esnode$(($i+1))"  mv elasticsearch-7.8.0 "$NEW_NAME"  # 更改目录的所属用户和组  chown -R "$TARGET_USER:$TARGET_GROUP" "$NEW_NAME"  echo "已成功创建并设置 $NEW_NAME 的所属用户和组为 $TARGET_USER:$TARGET_GROUP"  
done  
echo "所有操作已完成。"

修改/esnode1/config/elasticsearch.yml文件

#集群名称
cluster.name: my-cluster
#节点名称
node.name: "es-node-1"
#定义1为主节点
node.master: true
#定义节点2节点3为数据节点
node.data: true
#访问的IP地址,0.0.0.0表示不限制
network.host: 0.0.0.0
#访问端口号
http.port: 9201
#集群通讯端口号
transport.tcp.port: 9300#所有节点的ip地址
discovery.zen.ping.unicast.hosts: ["192.168.73.66:9300", "192.168.73.66:9301", "192.168.73.66:9302"]

修改/esnode2/config/elasticsearch.yml文件

#集群名称
cluster.name: my-cluster
#节点名称
node.name: "es-node-2"
#定义1为主节点
node.master: true
#定义节点2节点3为数据节点
node.data: true
#访问的IP地址,0.0.0.0表示不限制
network.host: 0.0.0.0
#访问端口号
http.port: 9202
#集群通讯端口号
transport.tcp.port: 9301#所有节点的ip地址
discovery.zen.ping.unicast.hosts: ["192.168.73.66:9300", "192.168.73.66:9301", "192.168.73.66:9302"]

修改/esnode3/config/elasticsearch.yml文件

#集群名称
cluster.name: my-cluster
#节点名称
node.name: "es-node-3"
#定义1为主节点
node.master: true
#定义节点2节点3为数据节点
node.data: true
#访问的IP地址,0.0.0.0表示不限制
network.host: 0.0.0.0
#访问端口号
http.port: 9203
#集群通讯端口号
transport.tcp.port: 9302#所有节点的ip地址
discovery.zen.ping.unicast.hosts: ["192.168.73.66:9300", "192.168.73.66:9301", "192.168.73.66:9302"]

注意: Elasticsearch 默认的 JVM 堆大小是最小/最大 1 GB,所以我使用的虚拟机的内存必须是4G因为你启动了三个服务要确保它们能各分1G正常启动,否则就会报错内存不足无法启动。

分别用es用户身份启动它们

image-20240511135028867

获取每个节点的信息

主节点es-node-1

image-20240511141235648

es-node-2

image-20240511141302381

es-node-3

image-20240511141314703

3、windows集群

创建 elasticsearch-cluster 文件夹,在内部复制三个 elasticsearch 服务

image-20240511160311941

修改集群文件目录中每个节点的 config/elasticsearch.yml 配置文件

node-1001 节点:

#节点 1 的配置信息:
#集群名称,节点之间要保持一致
cluster.name: my-elasticsearch
#节点名称,集群内要唯一
node.name: node-1001
node.master: true
node.data: true
#ip 地址
network.host: localhost
#http 端口
http.port: 1001
#tcp 监听端口
transport.tcp.port: 9301
#discovery.seed_hosts: ["localhost:9301", "localhost:9302","localhost:9303"]
#discovery.zen.fd.ping_timeout: 1m
#discovery.zen.fd.ping_retries: 5
#集群内的可以被选为主节点的节点列表
#cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
#跨域配置
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"

node-1002 节点:

#节点 2 的配置信息:
#集群名称,节点之间要保持一致
cluster.name: my-elasticsearch
#节点名称,集群内要唯一
node.name: node-1002
node.master: true
node.data: true
#ip 地址
network.host: localhost
#http 端口
http.port: 1002
#tcp 监听端口
transport.tcp.port: 9302
discovery.seed_hosts: ["localhost:9301"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
#集群内的可以被选为主节点的节点列表
#cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
#跨域配置
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"

node-1003 节点:

#节点 3 的配置信息:
#集群名称,节点之间要保持一致
cluster.name: my-elasticsearch
#节点名称,集群内要唯一
node.name: node-1003
node.master: true
node.data: true
#ip 地址
network.host: localhost
#http 端口
http.port: 1003
#tcp 监听端口
transport.tcp.port: 9303
#候选主节点的地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["localhost:9301", "localhost:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
#集群内的可以被选为主节点的节点列表
#cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
#跨域配置
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"

如果节点中有data目录需要先删除再逐一启动。

image-20240511161816546

查看一下集群

image-20240511161930994

localhost:1001/_cluster/health

image-20240511162031377
向主节点中添加一个索引user

image-20240511162817264

分别在节点2和3中查询一下

image-20240511163018436

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

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

相关文章

工程师工具箱系列(2)hasor

文章目录 工程师工具箱系列(2)hasor简介特点环境准备引入依赖数据库脚本文件配置Hasor配置 运行测试小结 工程师工具箱系列(2)hasor 简介 Hasor有着自己的独立的生命周期与Spring的不同,是一套完整的体系,提供了注入DataQL、Dataway、hasor-web等等&am…

AIGC、LLM 加持下的地图特征笔记内容生产系统架构设计

文章目录 背景构建自动化内容生产平台系统架构设计架构详细设计流程介绍笔记来源笔记抓取干预 笔记 AIGC 赋能笔记 Rule 改写笔记特征库构建 附录Bash Cron 定时任务Golang 与 Pyhon AIGC 实践 小结 背景 在大模型的浪潮下,ChatGPT、Sora、Gemini、文言一心 等新技…

具有CMOS输出,高速响应特点的新型汽车级晶振SG2520CAA

爱普生推出的汽车级晶振SG2520CAA。SG2520CAA是一款CMOS输出的,具有高响应速度的2520封装汽车级晶振,具有低电流消耗,1.6 V至3.63 V的宽工作电压,以及-40C至85C的宽工作温度范围,此外还可提供高达125C的工作温度。符合…

实现红黑树

目录 红黑树的概念 红黑树的节点结构定义 红黑树的插入 红黑树的验证 实现红黑树完整代码 红黑树的概念 红黑树 ,是一种 二叉搜索树 ,但 在每个结点上增加一个存储位表示结点的颜色,可以是 Red 或 Black 。 通过对 任何一条从根到叶子的…

[BJDCTF2020]ZJCTF,不过如此 1

涉及&#xff1a;php的伪协议、preg_replace函数的漏洞和正则表达式的运用。 解题步骤 <?phperror_reporting(0); $text $_GET["text"]; $file $_GET["file"]; if(isset($text)&&(file_get_contents($text,r)"I have a dream"))…

7.STL_string(详细)

1. 什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且 是一个包罗数据结构与算法的软件框架。 2. STL的版本 原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版…

FANUC机器人基本保养概述

对于工业机器人来说&#xff0c;定期保养机器人可以延长机器人的使用寿命。对于FANUC机器人来说&#xff0c;FANUC机器人的常规保养周期可以分为日常、三个月、六个月、一年、两年、三年。以下是FANUC机器人的基本保养周期概览&#xff1a; 在实际生产应用中&#xff0c;可以参…

【ORACLE战报】2024.4月最新OCP考试喜报.

课程介绍 DBA数据库管理必备认证&#xff1a;ORACLE OCP 19C 教材下载 ORACLE OCP 19C 官方电子教材 ORACLE OCP 12C官方电子教材 题库下载 ORACLE 19C题库 &#xff08;083384题、082362题&#xff09;-2024答案修正版.rar 所有的收获都是默默耕耘的成果 2024.4月【最新考试成…

加密与CA证书

文章目录 加密与CA证书http协议是不安全的使用对称秘钥进行数据加密非对称秘钥加密CA证书应用补充 加密与CA证书 CA 证书是什么&#xff0c;证书的目的是什么 首先明确一点&#xff0c;CA证书是数字时代中确保身份和数据安全的重要工具&#xff0c;为用户提供了安心、便捷和可…

向量数据库:Chroma

目录 一、Chroma 介绍 二、安装 Chroma 2.1 创建虚拟 python 环境 2.2 安装 Chroma 2.3 运行 Chroma 三、Backend API 一、Chroma 介绍 Chroma是一个开源的嵌入式数据库。Chroma通过使知识(knowledge)、事实(facts)和技能(skills)可插拔&#xff0c;从而简化了大型语言模…

设计模式之组合模式:探索对象组合的动态管理与操作技巧

​ 一、什么是组合模式 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型模式&#xff08;Structural Pattern&#xff09;&#xff0c;它主要解决的是如何将对象组合成树状以表示“部分-整体”的层次结构&#xff0c;并且可以对整个树进行统一的操作&#xff0…

Redis过期删除策略和内存淘汰策略有什么区别?

Redis过期删除策略和内存淘汰策略有什么区别&#xff1f; 前言过期删除策略如何设置过期时间&#xff1f;如何判定 key 已过期了&#xff1f;过期删除策略有哪些&#xff1f;Redis 过期删除策略是什么&#xff1f; 内存淘汰策略如何设置 Redis 最大运行内存&#xff1f;Redis 内…