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

或是直接修改sysctl.conf文件
vi /etc/sysctl.conf
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

 

posted @   slnngk  阅读(213)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示