CentOS安装Elasticsearch集群
前言
之前使用的ES集群是其他公司维护,没有机会安装,后来做其他项目,终于有机会安装ES集群,简单记录一下备用
一、安装jdk
安装jdk1.8就可以,可以参考另一篇文章,这里就不细说了
二、修改系统参数
如果在一台服务器安装集群,则下面的操作在一台服务器执行即可,如果要在多台服务器搭建ES集群,那么下面的操作要在所有的服务器上执行
2.1、内核参数优化
vim /etc/sysctl.conf
添加以下内容
vm.max_map_count = 262144
vm.swappiness = 0
vm.dirty_background_ratio = 3
vm.dirty_ratio = 5
vm.zone_reclaim_mode = 0
vm.min_free_kbytes = 2097152
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 3
使用以下命令校验相关配置
sudo sysctl -p
执行完之后,没有报错。
sysctl -a | grep 'vm.max_map_count'
可以看到以下配置
vm.max_map_count = 262144
sysctl -a | grep dirty
可以看到以下配置
vm.dirty_background_ratio = 3
vm.dirty_ratio = 5
2.2、设置资源数
vim /etc/profile
添加以下内容
ulimit -SHl unlimited
ulimit -SHu 409600
ulimit -SHn 409600
使配置生效
source /etc/profile
vim /etc/security/limits.conf
添加以下内容
@root soft core unlimited
@root hard core unlimited
* - nofile 500000
* soft nproc 500000
* soft nofile 655350
* hard nofile 655350
在profile配置生效后,输入如下命令,查看配置输出信息
ulimit -Hn,输出409600
ulimit -Sn,输出409600
注意:如果输出的不是该值,请检查vim /etc/bashrc中是否配置了ulimit -n 65535,如果有则注释掉该配置
2.3、修改线程数
vim /etc/security/limits.d/20-nproc.conf
添加以下内容
* soft nproc 500000
root soft nproc unlimited
2.4、修改开机启动项并执行
vim /etc/rc.d/rc.local
增加下列内容(直接复制粘贴):
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
保存并退出,并给rc.local添加可执行权限。
chmod +x /etc/rc.d/rc.local
三、安装ES
3.1、新建ES用户
adduser esuser
3.2、创建ES数据目录
es的数据目录需要选用数据盘来存放数据,切忌不可存选用系统盘作为存放es的数据。
一台服务器安装三个ES节点, 软件和数据都放在/home/es目录下,master,slave1,slave2目录存放三个节点的程序,maste_data,slave1_data,slave2_data目录存放对应节点的数据
mkdir -p /home/es/master
mkdir -p /home/es/master_data
mkdir -p /home/es/slave1_data
mkdir -p /home/es/slave2_data
赋权给ES用户
chown -R esuser:esuser /home/es
上传安装包到 /home/es目录下,解压到master目录
tar -zxf elasticsearch-7.x-linux-x86_64.tar.gz -C /home/es && mv /home/es/elasticsearch-7.x /home/es/master
3.3、配置jvm.options
es节点的最大可使用内存为32g,因此在更改jvm.options配置文件的时候,不要设置超过32g,如果所在服务器可使用内存远超32g,为不浪费剩余资源,可考虑在该服务器上多部署几个es节点。
cd /apps/elasticsearch-7.2.0
vim config/jvm.options
-Xms10g
-Xmx10g
3.4、配置elasticsearch.yml
cd master
vim config/elasticsearch.yml
cluster.name: my_cluster
node.name: node-101-1
path.data: /home/es/master_data
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
cluster.initial_master_nodes:["node-101-1","node-101-2","node-101-3"]
discovery.seed_hosts:["192.168.0.101:9300","192.168.0.101:9301","192.168.0.101:9302"]
gateway.recover_after_nodes: 3
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.routing.allocation.cluster_concurrent_rebalance: 10
cluster.routing.allocation.node_concurrent_recoveries: 10
cluster.routing.allocation.node_initial_primaries_recoveries: 4
配置说明
cluster.name: es集群的名称,可以自定义,但要保证集群中每一个node的cluster.name名称一致。
node.name: 节点的名称,可以自定义。
path.data: 存储数据目录,如果有多个磁盘,用”,”进行分隔。
node.master: true表示是否为master节点,true为是,false为否。
node.data: true表示是否为数据节点,true为是,false为否。
network.host: 0.0.0.0表示绑定的ip地址, 0.0.0.0表示绑定本机ip。
http.port: HTTP请求的端口号,默认9200~9299端口之间。
transport.tcp.port: nodes节点之前通信端口号,默认9300~9400端口之间。
cluster.initial_master_nodes:是es7.x 之后新增的配置,表示初始化一个新的集群时需要此配置来选举master,必须和node.name保持一致。
discovery.seed_hosts: 是es7.x 之后新增的配置,表示写入候选主节点的设备地址,在开启服务后可以被选为主节点。
gateway.recover_after_nodes: 2表示只要满足该数值的数据或主节点已加入集群,即可恢复。
http.cors.enabled: true表示是否支持跨域,是:true,在使用head插件时需要此配置。
http.cors.allow-origin: "*" “*” 表示支持所有域名。
cluster.routing.allocation.cluster_concurrent_rebalance: 10表示集群内同时启动的数据任务个数,默认是2个。
cluster.routing.allocation.node_concurrent_recoveries: 10表示添加或删除节点及负载均衡时并发恢复的线程个数,默认4个。
cluster.routing.allocation.node_initial_primaries_recoveries: 4表示初始化数据恢复时,并发恢复线程的个数,默认4个。
3.5、启动脚本
编辑简单的启动脚本启动ES
cd master
vim start.sh
#!/bin/sh
cd `dirname $0`
su esuser -c "sh ./bin/elasticsearch -d -p pid"
添加执行权限
chmod +x start.sh
3.6、配置其他节点
复制master到其他节点,修改对应的elasticsearch.yml配置即可,主要修改红色的配置,
cp -r /home/es/master /home/es/slave1
cp -r /home/es/master /home/es/slave2
其他服务器使用scp命令
scp -r /home/es/master root@ip:/home/es/master
四、启用集群安全认证
4.1、停止服务
jps -l
kill pid
4.2、 生成证书
注意:不需要设置密码,直接回车,后面如果有需要输入密码,也是直接回车。
./bin/elasticsearch-certutil ca
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
执行完之后,会生成两个文件,elastic-certificates.p12和elastic-stack-ca.p12
拷贝到master的config目录下和其他节点的congfig目录下
4.3、修改配置
master节点的elasticsearch.yml添加以下配置,其他节点添加对应的配置,注意证书文件的路径
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path:/home/es/master/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path:/home/es/master/config/elastic-certificates.p12
4.4、启动服务
./start.sh
4.4、设置密码
./bin/elasticsearch-setup-passwords interactive
要输入12次密码,都输入一样的就可以了
五、安装Kibana
上传并解压
tar -zxf kibana-7.x-linux-x86_64.tar.gz
赋权给esuser
chown -R esuser:esuser kibana-7.x-linux-x86_64
备份配置文件
mv kibana.yml kibana.yml_bak
编辑配置文件
vim config/kibana.yml
添加一下配置,按照具体的配置修改,如果es集群没有配置密码则不用配置
i18n.locale: "zh-CN"
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: "http://ip:9200"
elasticsearch.username: "kibana-system"
elasticsearch.password: "123456"
kibana.index: ".kibana"
编辑启动脚本
vim start.sh
#!/bin/bash
su esuser -c "nohup bin/kibana >./stdout.log 2>&1 &"
启动
./start.sh
浏览器访问ip:5601,输入es的用户名和密码即可
写在最后的话
集群安装也可以编写脚本完成一键安装,通过scp把安装包拷贝到其他节点。启用安全认证可以在3.3步骤后执行,就不用多配置了,一次配置就好了。
相关文章:
CentOS安装Elasticsearch集群
前言 之前使用的ES集群是其他公司维护,没有机会安装,后来做其他项目,终于有机会安装ES集群,简单记录一下备用 一、安装jdk 安装jdk1.8就可以,可以参考另一篇文章,这里就不细说了 二、修改系统参数 如果在…...
计算机专业毕业生指南
在大四毕业时,完成计算机毕业设计需要一定的计划和组织。以下是一些建议,帮助你在三个月内快速完成毕业设计: 选择一个合适的主题: 选择一个你感兴趣的主题,这将激发你的热情,使你更有动力完成项目。 确保…...

Springboot集成Docker并将镜像推送linux服务器
案例使用springboot项目,在IDEA 中集成Docker生成镜像,并将镜像发布到linux服务器 具体步骤如下: 1、Centos7安装Docker 更新系统的软件包列表 sudo yum update安装Docker所需的软件包和依赖项: sudo yum install docker完成…...

数字孪生与GIS:智慧城市的未来之路
数字孪生和地理信息系统(GIS)是两个在现代科技中崭露头角的概念,它们的融合为智慧城市项目带来了革命性的机会。本文将解释数字孪生为何需要融合GIS,并以智慧城市项目为例进行说明。 数字孪生是一种虚拟模型,它精确地…...

nas汇编程序的调试排错方法
nas汇编程序的调试排错方法: 1、查找是哪一步错了 2、查看对应的*.lst文件,本例中是"asmhead.lst" 3、根据*.lst文件的[ERROR #002]提示查看源码,改错。 4、重新运行编译,OK 1、查找是哪一步错了: nask.ex…...
【网络安全带你练爬虫-100练】第21练:批量获取文件夹中文件名
目录 一、目标1:使用python爬取指定文件夹中的文件名 二、目标2:在文件夹指定目录打开命令行 一、目标1:使用python爬取指定文件夹中的文件名 方法一:使用os模块 将/path/to/folder替换为实际的文件夹路径。os.listdir()函数用…...

Unittest自动化测试框架vs Pytest自动化测试框架
引言 前面一篇文章Python单元测试框架介绍已经介绍了python单元测试框架,大家平时经常使用的是unittest,因为它比较基础,并且可以进行二次开发,如果你的开发水平很高,集成开发自动化测试平台也是可以的。而这篇文章…...

PHP8的数组-PHP8知识详解
今天开始学习数组, 本文主要讲了三点:什么是数组、php8中数组的改进、数组函数。 一、什么是数组 在PHP8中,数组是非常重要的数据类型。相对于其他的数据类型,数组更像一种结构,而这种结构可以储存一系列数值。 数组…...
数据仓库_维度表的两大分类
最近看一篇文章对维度表进行了分类,记录一下。 维度表主要分为两类高基数维度表和低基数维度表。 高基数维度数据 一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。 低基数维度数据 一般是配置表,比如枚举值对应的中文含…...

4、DVWA——文件包含
文章目录 一、文件包含概述二、low2.1 源码分析2.2 通关分析 三、medium3.1 源码分析3.2 通关思路 四、high4.1 源码分析4.2 通关思路 五、impossible 一、文件包含概述 文件包含是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(i…...
产品经理如何进行需求管理
产品经理在进行需求管理时,可以遵循以下步骤: 1. 确定需求目标:明确产品的愿景和目标,确定需求管理的方向和重点。 2. 收集需求:与利益相关者(包括用户、业务部门、技术团队等)沟通,…...

【从0学习Solidity】2. 值类型详解
Solidity极简入门: 2. 值类型 博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发…...

框架分析(9)-Hibernate
框架分析(9)-Hibernate 专栏介绍Hibernate特性对象关系映射(ORM)数据库连接和事务管理查询语言(HQL)缓存机制透明的持久化操作对象的延迟加载事务管理 优缺点优点简化数据库操作跨数据库平台高度可定制性缓…...

JavaScript中的原型链(prototype chain)
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ JavaScript中的原型链⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏…...

设计模式之代理模式与外观模式
目录 代理模式 简介 优缺点 角色职责 实现 运用场景 外观模式 简介 角色职责 优缺点 实现 使用场景 代理模式 简介 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为…...

动手学深度学习(四)多层感知机
目录 一、多层感知机的从零开始实现 1.1 初始化模型参数 1.2 实现Relu函数 1.3 实现模型 1.4 训练 二、多层感知机的简洁实现 2.1 实现模型 2.2 训练 三、模型选择 3.1 训练误差和泛化误差 3.2 验证数据集和测试数据集 3.3 过拟合和欠拟合 3.4 代码实现 3.4.1 生…...

融云出海:社交泛娱乐出海,「从 0 到 1」最全攻略
9 月 21 日,融云直播课社交泛娱乐出海最短变现路径如何快速实现一款 1V1 视频社交应用? 欢迎点击上方小程序报名~ 本期我们翻到《地图》的实践篇,从赛道/品类选择、目标地区适配、用户增长、变现模式、本地化运营、跨国团队管理等方面完整描绘…...

生成式人工智能促使社会转变
作者:JEFF VESTAL 了解 Elastic 如何处于大型语言模型革命的最前沿 – 通过提供实时信息并将 LLM 集成到数据分析的搜索、可观察性和安全系统中,帮助用户将 LLM 提升到新的高度。 iPhone 社会转变:新时代的黎明 曾几何时,不久前…...

【STM32】SPI初步使用 读写FLASH W25Q64
硬件连接 (1) SS( Slave Select):从设备选择信号线,常称为片选信号线,每个从设备都有独立的这一条 NSS 信号线,当主机要选择从设备时,把该从设备的 NSS 信号线设置为低电平,该从设备即被选中,即…...
javaScript:DOM(父子/兄弟)常用属性
目录 前言 一.父子关系 父子关系的常用属性 childNodes 获取所有的子节点 children 获取所有的子元素(dom元素) firstChild 获取元素的第一个子节点,相当于 childNodes[0] firstElementChild 获取元素的第一个元素 相当于 children[0]…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...