elasticsearch集群部署
CentOs下安装Elasticsearch集群
环境:
OS:CentOs 7
Elasticsearch:6.5.0
1.安装步骤
1.1 环境部署
数据库部署
节点 | ip | 角色 |
Host01 | 192.168.1.135 |
|
Host02 | 192.168.1.135 |
|
Host03 | 192.168.1.136 |
|
1.2 安装java
安装java,确保版本在1.8以上
[root@localhost ~]# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
安装部署省略
每台机器上都需要安装
1.3 创建非root用户
因为es不能在root用户下启动,所以需要创建非root用户,我这里创建crate用户
#useradd yeemiao
1.4 配置非root用户(yeemiao)环境变量
[crate@localhost ~]$ more .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
JAVA_HOME=/usr/local/jdk1.8.0_151
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin
export PATH
[crate@local
1.5 /etc/security/limits.conf修改和sysctl修改
在该文件最后面添加如下两项,然后退出重新登录
* hard nofile 65536
* soft nofile 65536
[root@localhost /]# sysctl -w vm.max_map_count=262144
1.6 下载安装介质
下载地址:https://www.elastic.co/downloads/elasticsearch,我这里下载的是 elasticsearch-6.5.0.tar.gz
1.7 解压安装
每台机器都要进行安装
[root@localhost yeemiao]# tar -xvf elasticsearch-6.5.0.tar.gz
[root@localhost yeemiao]# mv elasticsearch-6.5.0 elasticsearch
[root@localhost yeemiao]# chown -R yeemiao:yeemiao ./elasticsearch
1.8 创建相关目录
每台机器上都要执行
[yeemiao@localhost elasticsearch]$cd /home/yeemiao/elasticsearch
[yeemiao@localhost elasticsearch]$ mkdir data
该目录用于存放数据文件
1.9 修改配置文件
vi /home/yeemiao/elasticsearch/config/ elasticsearch.yml
cluster.name: yeemiao-cluster # 集群名称 node.name: node-1 # 节点名称,仅仅是描述名称,用于在日志中区分
path.data: /home/yeemiao/elasticsearch/data # 数据的默认存放路径 path.logs: /home/yeemiao/elasticsearch/logs # 日志的默认存放路径
network.host: 192.168.1.134 # 当前节点的IP地址 http.port: 9200 # 对外提供服务的端口,9300为集群服务的端口
discovery.zen.ping.unicast.hosts: ["192.168.1.134", "192.168.1.135","192.168.1.136"] # 集群个节点IP地址,也可以使用els、els.shuaiguoxia.com等名称,需要各节点能够解析
discovery.zen.minimum_master_nodes: 2 # 为了避免脑裂,集群节点数最少为 半数+1 |
将配置文件scp到另外的机器,然后相应修改红色部分
1.10 JVM配置
每台机器都要设置
由于Elasticsearch是Java开发的,所以可以通过/etc/elasticsearch/jvm.options配置文件来设定JVM的相关设定。如果没有特殊需求按默认即可。
不过其中还是有两项最重要的-Xmx1g与-Xms1gJVM的最大最小内存。如果太小会导致Elasticsearch刚刚启动就立刻停止。太大会拖慢系统本身
1.11 设置内存大小
每台机器都要设置
vi /home/yeemiao/elasticsearch/bin/elasticsearch
export ES_HEAP_SIZE=4g
同时在配置文件elasticsearch.yml中添加如下项目:
bootstrap.mlockall: true
1.12 启动
每台机器都要启动
[root@localhost opt]# su - yeemiao
[yeemiao@localhost bin]$ cd /home/yeemiao/elasticsearch/bin
[yeemiao@localhost bin]$./elasticsearch –d
1.13 遇到的问题
1.13.1 bootstrap.mlockall
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: unknown setting [bootstrap.mlockall]
将配置文件里该参数设置为false
1.13.2 修改limits.conf
解决办法:
vi /etc/security/limits.conf
root用户下添加如下2两项,然后退出使用yeemiao用户登陆,使其生效
* hard nofile 65536
* soft nofile 65536
1.13.3 修改max_map_count
# sysctl -w vm.max_map_count=262144
1.14 配置验证
在每个节点的配置文件里的最后添加如下配置项,启用xpack验证xpack.security.enabled: true
重新启动每个节点,然后在其中一个节点上执行如下命令
./elasticsearch-setup-passwords interactive
这里会提示设置每个账号的密码,设置即可。
这里遇到了个小问题,把xpack.security.enabled: true添加到每个节点的配置文件重启之后,好像集群不可用,其中一个节点xpack生效了,但是另外两个节点xpack没有生效,后来我是在每个节点的配置文件添加了如下参数,重启动后等了一会好像就可以了。
node.data: true
node.master: true
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?