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步骤后执行,就不用多配置了,一次配置就好了。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
CentOS安装Elasticsearch集群
前言 之前使用的ES集群是其他公司维护,没有机会安装,后来做其他项目,终于有机会安装ES集群,简单记录一下备用 一、安装jdk 安装jdk1.8就可以,可以参考另一篇文章,这里就不细说了 二、修改系统参数 如果在…...
![](https://www.ngui.cc/images/no-images.jpg)
计算机专业毕业生指南
在大四毕业时,完成计算机毕业设计需要一定的计划和组织。以下是一些建议,帮助你在三个月内快速完成毕业设计: 选择一个合适的主题: 选择一个你感兴趣的主题,这将激发你的热情,使你更有动力完成项目。 确保…...
![](https://img-blog.csdnimg.cn/dc90c453f0d24af39ef259662b848428.png)
Springboot集成Docker并将镜像推送linux服务器
案例使用springboot项目,在IDEA 中集成Docker生成镜像,并将镜像发布到linux服务器 具体步骤如下: 1、Centos7安装Docker 更新系统的软件包列表 sudo yum update安装Docker所需的软件包和依赖项: sudo yum install docker完成…...
![](https://img-blog.csdnimg.cn/img_convert/a901544e74fae2c235e7fb37f9d57a21.png)
数字孪生与GIS:智慧城市的未来之路
数字孪生和地理信息系统(GIS)是两个在现代科技中崭露头角的概念,它们的融合为智慧城市项目带来了革命性的机会。本文将解释数字孪生为何需要融合GIS,并以智慧城市项目为例进行说明。 数字孪生是一种虚拟模型,它精确地…...
![](https://img-blog.csdnimg.cn/1434a238540e4ecb8c48c47a268dbd33.png#pic_center)
nas汇编程序的调试排错方法
nas汇编程序的调试排错方法: 1、查找是哪一步错了 2、查看对应的*.lst文件,本例中是"asmhead.lst" 3、根据*.lst文件的[ERROR #002]提示查看源码,改错。 4、重新运行编译,OK 1、查找是哪一步错了: nask.ex…...
![](https://www.ngui.cc/images/no-images.jpg)
【网络安全带你练爬虫-100练】第21练:批量获取文件夹中文件名
目录 一、目标1:使用python爬取指定文件夹中的文件名 二、目标2:在文件夹指定目录打开命令行 一、目标1:使用python爬取指定文件夹中的文件名 方法一:使用os模块 将/path/to/folder替换为实际的文件夹路径。os.listdir()函数用…...
![](https://img-blog.csdnimg.cn/f40e0821d5ea474cb5eb5c30ccda4e97.png)
Unittest自动化测试框架vs Pytest自动化测试框架
引言 前面一篇文章Python单元测试框架介绍已经介绍了python单元测试框架,大家平时经常使用的是unittest,因为它比较基础,并且可以进行二次开发,如果你的开发水平很高,集成开发自动化测试平台也是可以的。而这篇文章…...
![](https://img-blog.csdnimg.cn/img_convert/49c43b026fe5c4fc14aeaf3b0c38c1ee.jpeg)
PHP8的数组-PHP8知识详解
今天开始学习数组, 本文主要讲了三点:什么是数组、php8中数组的改进、数组函数。 一、什么是数组 在PHP8中,数组是非常重要的数据类型。相对于其他的数据类型,数组更像一种结构,而这种结构可以储存一系列数值。 数组…...
![](https://www.ngui.cc/images/no-images.jpg)
数据仓库_维度表的两大分类
最近看一篇文章对维度表进行了分类,记录一下。 维度表主要分为两类高基数维度表和低基数维度表。 高基数维度数据 一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。 低基数维度数据 一般是配置表,比如枚举值对应的中文含…...
![](https://img-blog.csdnimg.cn/75a0850b74874fcf9fa93e455823aae6.png#pic_center)
4、DVWA——文件包含
文章目录 一、文件包含概述二、low2.1 源码分析2.2 通关分析 三、medium3.1 源码分析3.2 通关思路 四、high4.1 源码分析4.2 通关思路 五、impossible 一、文件包含概述 文件包含是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(i…...
![](https://www.ngui.cc/images/no-images.jpg)
产品经理如何进行需求管理
产品经理在进行需求管理时,可以遵循以下步骤: 1. 确定需求目标:明确产品的愿景和目标,确定需求管理的方向和重点。 2. 收集需求:与利益相关者(包括用户、业务部门、技术团队等)沟通,…...
![](https://img-blog.csdnimg.cn/830f40d884774d34bdbb472ba2e8942e.gif#pic_center)
【从0学习Solidity】2. 值类型详解
Solidity极简入门: 2. 值类型 博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发…...
![](https://img-blog.csdnimg.cn/f6e73b833d97483a9b211b93b5c428bb.png)
框架分析(9)-Hibernate
框架分析(9)-Hibernate 专栏介绍Hibernate特性对象关系映射(ORM)数据库连接和事务管理查询语言(HQL)缓存机制透明的持久化操作对象的延迟加载事务管理 优缺点优点简化数据库操作跨数据库平台高度可定制性缓…...
![](https://img-blog.csdnimg.cn/49003d19702f43c9a233b53cf361faf0.png)
JavaScript中的原型链(prototype chain)
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ JavaScript中的原型链⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏…...
![](https://img-blog.csdnimg.cn/a310a367d30644339d10c938e3f3bcd7.png)
设计模式之代理模式与外观模式
目录 代理模式 简介 优缺点 角色职责 实现 运用场景 外观模式 简介 角色职责 优缺点 实现 使用场景 代理模式 简介 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为…...
![](https://img-blog.csdnimg.cn/224ece6fbf6c4f8985bb3d7c0ddcb596.png)
动手学深度学习(四)多层感知机
目录 一、多层感知机的从零开始实现 1.1 初始化模型参数 1.2 实现Relu函数 1.3 实现模型 1.4 训练 二、多层感知机的简洁实现 2.1 实现模型 2.2 训练 三、模型选择 3.1 训练误差和泛化误差 3.2 验证数据集和测试数据集 3.3 过拟合和欠拟合 3.4 代码实现 3.4.1 生…...
![](https://img-blog.csdnimg.cn/img_convert/de66edae4e68d933462ffaebe9ed18dc.png)
融云出海:社交泛娱乐出海,「从 0 到 1」最全攻略
9 月 21 日,融云直播课社交泛娱乐出海最短变现路径如何快速实现一款 1V1 视频社交应用? 欢迎点击上方小程序报名~ 本期我们翻到《地图》的实践篇,从赛道/品类选择、目标地区适配、用户增长、变现模式、本地化运营、跨国团队管理等方面完整描绘…...
![](https://img-blog.csdnimg.cn/2e0c84cdb7334a0794455531513c61d2.webp)
生成式人工智能促使社会转变
作者:JEFF VESTAL 了解 Elastic 如何处于大型语言模型革命的最前沿 – 通过提供实时信息并将 LLM 集成到数据分析的搜索、可观察性和安全系统中,帮助用户将 LLM 提升到新的高度。 iPhone 社会转变:新时代的黎明 曾几何时,不久前…...
![](https://img-blog.csdnimg.cn/34e46aefe577414c98ef10b62635557a.png)
【STM32】SPI初步使用 读写FLASH W25Q64
硬件连接 (1) SS( Slave Select):从设备选择信号线,常称为片选信号线,每个从设备都有独立的这一条 NSS 信号线,当主机要选择从设备时,把该从设备的 NSS 信号线设置为低电平,该从设备即被选中,即…...
![](https://www.ngui.cc/images/no-images.jpg)
javaScript:DOM(父子/兄弟)常用属性
目录 前言 一.父子关系 父子关系的常用属性 childNodes 获取所有的子节点 children 获取所有的子元素(dom元素) firstChild 获取元素的第一个子节点,相当于 childNodes[0] firstElementChild 获取元素的第一个元素 相当于 children[0]…...
![](https://www.ngui.cc/images/no-images.jpg)
笔记:linux中LED(GPIO)驱动设备树配置和用法
设备树中节点配置 设备树中的LED驱动一般是这样写,LED驱动可以控制GPIO的电平变化,生成文件节点很方便 leds: leds {compatible "gpio-leds";gpio_demo: gpio_demo {label "gpio_demo";gpios <&gpio0 RK_PC0 GPIO_ACTIV…...
![](https://img-blog.csdnimg.cn/6e2be4be07e94dee928a611767e26b9e.png)
能耗管理+分区温控成为开发节能、省电神器的关键!从此告别电费刺客时代
取暖器在人们脑海中最深刻的印象,就是费电!而它耗电量大的原因,主要在于它是靠电能直接转化为热能:在取暖设备通电后,内部高电阻的电热丝发热,风机会将这股热量吹散到室内,从而达到全屋取暖的效…...
![](https://img-blog.csdnimg.cn/bf2aef1314fc41ea81ac8f44f18758a8.png#pic_center)
垃圾回收 - 复制算法
GC复制算法是Marvin L.Minsky在1963年研究出来的算法。说简单点,就是只把某个空间的活动对象复制到其它空间,把原空间里的所有对象都回收掉。这是一个大胆的想法。在此,我们将复制活动对象的原空间称为From空间,将粘贴活动对象的新…...
![](https://www.ngui.cc/images/no-images.jpg)
基于SpringMVC实现常见功能
基于SpringMVC实现常见功能 防止XSS攻击 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到…...
![](https://img-blog.csdnimg.cn/fe7e43b5053e4c718fde14c6a581c4d6.png)
MetInfo5.0文件包含漏洞
MetInfo历史版本与文件 环境在这里下载,使用phpstudy搭建 我们来看到这个index.php,如下图所示,其中定义了fmodule变量与module变量,其中require_once语句表示将某个文件引入当前文件,在这个代码中,通过r…...
![](https://www.ngui.cc/images/no-images.jpg)
【SpringBoot】SpringBoot实现基本的区块链的步骤与代码
以下是Spring Boot实现基本的区块链代码的步骤: 创建一个Block类,它表示一个区块,包含一个区块头和一个区块体。区块头包括版本号、时间戳、前一个区块的哈希值和当前区块的哈希值。区块体包含交易数据。 创建一个Blockchain类,它…...
![](https://img-blog.csdnimg.cn/b649ad0d9fde4ffe8bc618e3b57cbbaf.png)
Photoscan/Metashape 2.0.0中的地面激光扫描处理
在Metashape(原Photoscan)2.0.0, 结构化地面激光扫描和非结构化航空激光扫描都可以使用导入点云(文件>导入>导入点云)命令导入。导入时会保留所有点属性(包括结构化信息)。 本文讨论以下主题 如何将激光扫描数据导入项目&am…...
![](https://img-blog.csdnimg.cn/5086f6f271d84ae48e7de5c570db08b7.png)
git快速使用
1、下载git 设置签名 2、基本概念 工作区:写代码的地方。 暂存区:.git的.index 工作区:.git 3、常用操作 本地codinggit init, 初始化一个本地仓库,项目根目录下会出现个.gitgit remote add origin gitgithub.com…...
![](https://www.ngui.cc/images/no-images.jpg)
java 实现代理模式
代理模式(Proxy Pattern)是一种结构型设计模式,它允许一个对象(代理对象)充当另一个对象(被代理对象)的接口,以控制对该对象的访问。代理模式通常用于以下情况: 远程代理…...
![](https://www.ngui.cc/images/no-images.jpg)
【每日一题】力扣1768. 交替合并字符串
题目以及链接: 1768. 交替合并字符串 给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。 返回 合并后的字符串 。 示例 1&…...
![](/images/no-images.jpg)
中卫网站设计在哪里/营销策划的重要性
uiwebview加载中文URL _paperGamePath [_paperGamePath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSLog("paper game path is: %", _paperGamePath);转载于:https://www.cnblogs.com/xiangjune/p/5189160.html...
![](/images/no-images.jpg)
网站设计网页主页介绍/独立站建站平台
JSON.stringify() 转JSON字符串 JSON.parse() 转JSON对象...
![](/images/no-images.jpg)
杭州网站设计予尚/网站建设方案设计书
view-->word wrap; setting->preference-->vertical edge settings; Notepad中如何设置自动换行以及行宽 http://jingyan.baidu.com/article/6c67b1d68eddbc2787bb1e8c.html 转载于:https://www.cnblogs.com/mylinux/p/4741321.html...
![](/images/no-images.jpg)
网站推广入口/南宁百度seo推广
实例 1、取得 MYSQL 的版本取得 MYSQL 的版本实例 2、创建一个表并且插入数据创建一个表并且插入数据实例 3、 python 使用 slect 获取 mysql 的数据并遍历使用 slect 获取 mysql 的数据并遍历上面的代码,用来将所有的结果取出,不过打印的时候是每行一个…...
![](/images/no-images.jpg)
中国人做英文网站/百度站长工具域名查询
定时任务 robfig/cron go get github.com/robfig/cron/v3v3.0.0https://github.com/robfig/cron https://godoc.org/github.com/robfig/cron 注意:v3开始执行策略为5个参数,不是6个,实际上秒级的定时任务也没有存在的意义。 robfig/cron 是…...
![](/images/no-images.jpg)
做蛋糕比较火的网站/站长网站工具
lst [1, 2, 4] print lst.__iter__().next() # 打印出来的是 1 print lst.__iter__().next() # 打印出来的是 1# 调用__iter__()方法的时候,生成一个迭代器对象;如上,第二次调用,先生成对象,然后返回的是该对象的第一…...