Elasticsearch 5.6.4 分布式集群部署
部署环境说明:
操作系统:CentOS7
elasticsearch版本:elasticsearch-5.6.4.tar.gz
JDK版本:jdk1.8.0_144
服务器:
192.168.1.240(主节点、数据节点)
192.168.1.241(主节点、数据节点)
192.168.1.242(数据节点)
部署步骤:
elasticsearch5.6.4必需要jdk1.8版本,后续简称es
部署前需要首先安装jdk1.8,然后设置jdk的环境变量,这里就不赘述了
当然如果不想改变原先jdk的环境变量,比如原先服务器上已经安装了其他版本的jdk,下文会介绍另外一种方式
1、修改内核参数,如果不修改内核参数后续启动es会报各种错误
vi /etc/security/limits.conf 添加如下内容(也可以根据实际设定为其他值)
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
vi /etc/sysctl.conf 添加如下内容
vm.max_map_count=655360
执行 sysctl -p 使配置生效
2、在elasticsearch官网(https://www.elastic.co/downloads/elasticsearch)下载elasticsearch-5.6.4.tar.gz
放到/opt下,解压缩
tar -xvzf elasticsearch-5.6.4.tar.gz
生成文件夹 elasticsearch-5.6.4
3、建立运行es的用户(es不允许以root用户执行,没有找到其他的解决方案这个版本)
adduser elas
passwd elas 设定密码
chown -R elas /opt/elasticsearch-5.6.4 将文件夹的所有权给elas用户
4、修改配置文件,这个步骤在三台服务器上执行不同的操作
在192.168.1.240 上
vi /opt/elasticsearch-5.6.4/config/elasticsearch.yml
增加如下配置
#设置集群的名称
cluster.name: elas-1
#设置当前节点的名称
node.name: hadoop
#设置当前节点的HOST
network.host: 192.168.1.240
#设置当前节点为主节点
node.master: true
#设置当前节点为数据节点
node.data: true
#允许跨源REST请求,后续安装head插件需要此参数
http.cors.enabled: true
#设置跨源的REST来自何处,*表示所有
http.cors.allow-origin: "*"
#集群-发现模式,这里使用的是单播,多播在某些环境下不受支持,比如阿里云
discovery.zen.ping.unicast.hosts: ["192.168.1.240","192.168.1.241","192.168.1.242"]
在192.168.1.241上
cluster.name: elas-1
node.name: hadoop2
network.host: 192.168.1.241
node.master: true
node.data: true
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["192.168.1.240","192.168.1.241","192.168.1.242"]
在192.168.1.242上
cluster.name: elas-1
node.name: hadoop3
network.host: 192.168.1.242
#不是主节点
node.master: false
node.data: true
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["192.168.1.240","192.168.1.241","192.168.1.242"]
5、启动
切换到elas用户
su - elas
在三台服务器是上分别执行命令
cd /opt/elasticsearch-5.6.4
bin/elasticsearch
上文说过如果没有设置jdk1.8的环境变量,可以修改一下这个启动脚本,在开始处增加jdk1.8的JAVA_HOME
export JAVA_HOME=/opt/jdk1.8.0_144
启动成功后,会有如下的日志输出
相关文章