两台服务器(最好是单数台,跟master选举方式有关),确保两台机器互相ping的通。
且两台机器都需要装了jdk环境,因为es依赖java运行环境。
192.168.95.129 node-002
192.168.95.130 node-003
1. 官网下载linux下es安装包,https://www.elastic.co/downloads/past-releases
本实例版本:elasticsearch-5.6.10.tar.gz
2. 解压到 /opt目录下
[root@node-002 opt]# tar -zxvf elasticsearch-5.6.10.tar.gz
3. 修改es配置文件
[root@node-002 config]# pwd
/opt/elasticsearch-5.6.10/config
[root@node-002 config]# vi elasticsearch.yml (替换为以下全部,另外一台上面需要改node.name 和 network.host)
# ================= Elasticsearch Configuration ===================
# #配置es的集群名称, es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
cluster.name: winy-es-cluster
# #节点名称
node.name: node-002
# #指定该节点是否有资格被选举成为node
node.master: true
# #指定该节点是否存储索引数据,默认为true。
node.data: true
# #设置绑定的ip地址还有其它节点和该节点交互的ip地址,本机ip
network.host: 192.168.95.129
# #指定http端口,你使用head、kopf等相关插件使用的端口
http.port: 9200
# #设置节点间交互的tcp端口,默认是9300。
transport.tcp.port: 9300
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
discovery.zen.ping.unicast.hosts: ["192.168.95.129:9300","192.168.95.130:9300"]
#如果要使用head,那么需要增加新的参数,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
4. 因为用到了 9200和9300端口
[root@node-002 /]# firewall-cmd --zone=public --add-port=9300/tcp --permanent
success
[root@node-002 /]# firewall-cmd --zone=public --add-port=9200/tcp --permanent
success
[root@node-002 /]# firewall-cmd --reload
5. es由于安全原因,不能用root用户运行,所以需要添加es-admin用户,并赋予其es文件夹权限
[root@node-002 bin]# adduser es-admin
[root@node-002 bin]# echo 123456 | passwd --stdin es-admin (强制给赋值简单密码)
[root@node-002 bin]# chown -R es-admin /opt/elasticsearch-5.6.10/
[root@node-002 bin]# vi /etc/security/limits.conf
最下面加上:
es-admin hard nofile 65536
es-admin soft nofile 65536
6. 配置vm相关参数
[root@node-002 /]# vi /etc/sysctl.conf
最下面添加:
vm.max_map_count=655360
[root@node-002 /]# sysctl -p
7. 切换到es-admin用户,启动es服务,-d 参数以守护进程方式在后台运行
[es-admin@node-002 bin]$ pwd
/opt/elasticsearch-5.6.10/bin
[es-admin@node-002 bin]$ ./elasticsearch -d
8. 查看集群是否搭建成功
浏览器中输入如下请求访问: http://192.168.95.129:9200/_cluster/health?pretty=true
1. java -version
jdk没装或者是服务器自带的openjdk
解决方法:参考 https://blog.csdn.net/winy_lm/article/details/50188235
2. 解决方法: elasticsearch.yml 中 的每个配置项,前面必须要有空格
3. 解决方法:
[root@node-002 bin]# adduser es-admin
[root@node-002 bin]# echo 123456 | passwd --stdin es-admin (强制给赋值简单密码)
4. 解决方法:
[root@node-002 bin]# chown -R es-admin /opt/elasticsearch-5.6.10/
5. 解决方法:
[root@node-002 bin]# vi /etc/security/limits.conf
最下面加上:
es-admin hard nofile 65536
es-admin soft nofile 65536
6. 解决方法:
[root@node-002 /]# vi /etc/sysctl.conf
最下面添加:
vm.max_map_count=655360
[root@node-002 /]# sysctl -p