ElasticSearch集群搭建
本文采用ElasticSearch5.6.9版本,采用3台机器安装,分别为server01,server02,server03
。机器的系统是CentOS6.9
版本
ElasticSearch集群是采用leader选举机制来产生master
1.下载并解压
1.1 官网下载地址:
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"]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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.启动异常的问题
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