ElasticSearch集群搭建

本文采用ElasticSearch5.6.9版本,采用3台机器安装,分别为server01,server02,server03。机器的系统是CentOS6.9版本

ElasticSearch集群是采用leader选举机制来产生master

1.下载并解压

1.1 官网下载地址:

https://www.elastic.co/cn/downloads/elasticsearch

1.2 上传到server01机器

scp elasticsearch-5.6.9.tar.gz hadoop@server01:/hadoop

1.3 解压

tar -zxvf elasticsearch-5.6.9.tar.gz

1.4 重命名

mv elasticsearch-5.6.9 elasticsearch

2.修改配置文件并启动

进入elasticsearch/config目录

2.1 修改elasticsearch.yml配置文件

#集群名称,通过组播的方式通信,通过名称判断属于哪个集群
cluster.name: es-cluster

#节点名称,要唯一
node.name: es1

#数据存放位置
path.data: /hadoop/elasticsearch/data

#日志存放位置
path.logs: /hadoop/elasticsearch/logs

# centos6.x需要添加,不然会导致启动错误
bootstrap.system_call_filter: false

#es绑定的ip地址
network.host: server01

# http访问的端口
http:port: 9200

#初始化时可进行选举的节点
discovery.zen.ping.unicast.hosts: ["server01", "server02", "server03"]

operator 部署es集群 es集群启动_大数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FyPcjtrr-1660621423961)(https://raw.githubusercontent.com/zhang3550545/image_center/master/image-2018/es-install-1.2.png)]

2.2 修改jvm.options文件(可选)

vim config/jvm.options

# 将虚拟机内存默认的2g改为512m
# -Xms2g  
# -Xmx2g  
# 修改为  

-Xms512m  
-Xmx512m

如果机器的内存比较小,设置为2g会导致如下错误

Java HotSpot 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=‘Cannot allocate memory’ (errno=12)

2.3 分发到server02,server03机器上

scp -r /hadoop/elasticsearch hadoop@server02:/hadoop

scp -r /hadoop/elasticsearch hadoop@server03:/hadoop

修改server02机器上的elasticsearch.yml配置文件

node.name: es2

network.host: server02

修改server03机器上的elasticsearch.yml配置文件

node.name: es3

network.host: server03

2.4 设置环境变量

在server01,server02,server03机器上分别设置环境变量

sudo vim /etc/profile

export ES_HOME=/hadoop/elasticsearch
export PATH=$PATH:$ES_HOME/bin

使环境变量生效

source /etc/profile

2.5 修改/etc/security/limits.conf配置

* soft memlock unlimited
* hard memlock unlimited

* soft nofile 65536
* hard nofile 131072

* soft nproc 2048
* hard nproc 4096

修改/etc/sysctl.conf文件配置

添加下面配置:
vm.max_map_count=655360

并执行命令:
sysctl -p

退出用户后登入有效

2.6 启动elasticsearch集群

bin/elasticsearch

# 后台启动
# bin/elasticsearch -d

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wL323lvM-1660621423962)(https://raw.githubusercontent.com/zhang3550545/image_center/master/image-2018/es-install-1.3.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-op1EMtHD-1660621423962)(https://raw.githubusercontent.com/zhang3550545/image_center/master/image-2018/es-install-1.4.png)]

3.启动异常的问题

operator 部署es集群 es集群启动_搜索引擎_02

3.1 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

解决方案:

切换到root用户下,编辑/etc/security/limits.conf文件

vim /etc/security/limits.conf

编辑内容如下:

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

3.2 max number of threads [1024] for user [hadoop] is too low, increase to at least [2048]

解决方案:

在root用户下

vim /etc/security/limits.d/90-nproc.conf

修改如下内容:

# 将
# * soft nproc 1024
# 修改为

* soft nproc 2048

3.3 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方案:

在root用户下

编辑vim /etc/sysctl.conf文件

添加下面配置:
vm.max_map_count=655360


并执行命令:
sysctl -p

3.4 system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。

解决方案:

elasticsearch.yml中配置bootstrap.system_call_filter为false

bootstrap.system_call_filter: false

3.5 Java HotSpot 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=‘Cannot allocate memory’ (errno=12)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iFTqlGal-1660621423964)(https://raw.githubusercontent.com/zhang3550545/image_center/master/image-2018/es-install-error2.png)]

这个问题表示jvm的内存不足

解决方案:

vim config/jvm.options

# 将jvm内存参数2g改为512m
# -Xms2g  
# -Xmx2g  
# 修改为  

-Xms512m  
-Xmx512m

m