准备的集群机器4台:
8core cpu,8G RAM, 1T机械硬盘,
ip地址为:
192.168.20.111
192.168.20.112
192.168.20.113
192.168.20.114
安装Java
ES基于Java开发,所以安装ES前,每天机器需先安装Java,版本1.7及以上。
查看可安装的java源
yum list java*
选择安装java 的版本,这里选的jdk 1.8
yum install java-1.8.0-openjdk.x86_64
完成安装后,查看安装是否成功
java -version
安装ES 6.2.2
为什么要安装6.2.2版本,这里是为了基于spring boot做开发用,所以才安装这个版本。
Spring boot 2.1.6引用的elasticsearch Jar是6.4.3版本,对应ES是6.2.2版本。
- 下载对应版本ES
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.rpm
- 安装
rpm -i elasticsearch-6.2.2.rpm
- 设置开机启动
chkconfig --add elasticsearch
- 启动停止命令
service elasticsearch start
service elasticsearch stop
service elasticsearch status
- 查看状态
curl -X GET "localhost:9200/"
配置
修改配置文件
vi /etc/elasticsearch/elasticsearch.yml
- 设置 cluster.name,如果要设置为同一个集群,各机器cluster.name必须相同
cluster.name: my-clusters
- 设置node.name,给每台机器设置唯一的node.name,比如:node-1,node-2,node-3,node-4等
node.name: node-1
- 设置数据、日志存放路径
path.data: /home/elasticsearch/data
path.logs: /home/elasticsearch/logs
值得注意的是,如果文件夹是mkdir出来的,需要设置文件夹权限,比如这里的/home/elasticsearch
设置权限:
在/home/elasticsearch/下新建文件夹data和logs
cd /home/elasticsearch/
chown -R elasticsearch:elasticsearch *
- 设置network.host,允许外网访问。
network.host: 0.0.0.0
生产环境下不建议开启这项配置。会有极大的安全风险。
- 设置访问端口http.port,默认是9200
- 设置集群ip
discovery.zen.ping.unicast.hosts: ["192.168.20.111", "192.168.20.112", "192.168.20.113", "192.168.20.114"]
同时需要开启防火墙的9300端口
centos 7下开启端口命令:
firewall-cmd --zone=public --add-port=9300/tcp --permanent
firewall-cmd --reload
这个默认端口是集群之间通信使用,如果不开启,则各节点无法相互发现,也就无法组建集群。
配置完之后保存退出。
启动,查看集群情况
在启动es的任一节点上执行:
curl -XGET 'http://localhost:9200/_cluster/state?pretty'
返回内容:
{
"cluster_name" : "weibo-clusters",
"compressed_size_in_bytes" : 2748,
"version" : 36,
"state_uuid" : "gC7CcXlwSlusefAA3Qc6Xw",
"master_node" : "OibqAnyZQ_ewB29rcdj-HQ",
"blocks" : { },
"nodes" : {
"gVqzazwLTomN4cPSErKNyw" : {
"name" : "node-3",
"ephemeral_id" : "E9jHRGS2RLec46bujoefIg",
"transport_address" : "192.168.20.113:9300",
"attributes" : { }
},
"OibqAnyZQ_ewB29rcdj-HQ" : {
"name" : "node-2",
"ephemeral_id" : "j2621VPkS2yJHqgvmknM8Q",
"transport_address" : "192.168.20.112:9300",
"attributes" : { }
},
"UPm4tT6uSbamTw1J59qvnA" : {
"name" : "node-1",
"ephemeral_id" : "7-Q0LfB0ToyQNIxMy1NNng",
"transport_address" : "192.168.20.111:9300",
"attributes" : { }
},
"VlL2-DBmTvKrZASuSnYyuA" : {
"name" : "weibo-node-4",
"ephemeral_id" : "hm1MaDNXSqW7Czws0C8wrA",
"transport_address" : "192.168.20.114:9300",
"attributes" : { }
}
},
"metadata" : {
......