準(zhǔn)備的集群機(jī)器4臺:
8core cpu,8G RAM, 1T機(jī)械硬盤,
ip地址為:
192.168.20.111
192.168.20.112
192.168.20.113
192.168.20.114
安裝Java
ES基于Java開發(fā),所以安裝ES前,每天機(jī)器需先安裝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做開發(fā)用,所以才安裝這個(gè)版本。
Spring boot 2.1.6引用的elasticsearch Jar是6.4.3版本,對應(yīng)ES是6.2.2版本。
- 下載對應(yīng)版本ES
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.rpm - 安裝
rpm -i elasticsearch-6.2.2.rpm - 設(shè)置開機(jī)啟動(dòng)
chkconfig --add elasticsearch - 啟動(dòng)停止命令
service elasticsearch start
service elasticsearch stop
service elasticsearch status
- 查看狀態(tài)
curl -X GET "localhost:9200/"
配置
修改配置文件
vi /etc/elasticsearch/elasticsearch.yml
- 設(shè)置 cluster.name,如果要設(shè)置為同一個(gè)集群,各機(jī)器cluster.name必須相同
cluster.name: my-clusters
- 設(shè)置node.name,給每臺機(jī)器設(shè)置唯一的node.name,比如:node-1,node-2,node-3,node-4等
node.name: node-1
- 設(shè)置數(shù)據(jù)、日志存放路徑
path.data: /home/elasticsearch/data
path.logs: /home/elasticsearch/logs
值得注意的是,如果文件夾是mkdir出來的,需要設(shè)置文件夾權(quán)限,比如這里的/home/elasticsearch
設(shè)置權(quán)限:
在/home/elasticsearch/下新建文件夾data和logs
cd /home/elasticsearch/
chown -R elasticsearch:elasticsearch *
- 設(shè)置network.host,允許外網(wǎng)訪問。
network.host: 0.0.0.0
生產(chǎn)環(huán)境下不建議開啟這項(xiàng)配置。會(huì)有極大的安全風(fēng)險(xiǎn)。
- 設(shè)置訪問端口http.port,默認(rèn)是9200
- 設(shè)置集群ip
discovery.zen.ping.unicast.hosts: ["192.168.20.111", "192.168.20.112", "192.168.20.113", "192.168.20.114"]
同時(shí)需要開啟防火墻的9300端口
centos 7下開啟端口命令:
firewall-cmd --zone=public --add-port=9300/tcp --permanent
firewall-cmd --reload
這個(gè)默認(rèn)端口是集群之間通信使用,如果不開啟,則各節(jié)點(diǎn)無法相互發(fā)現(xiàn),也就無法組建集群。
配置完之后保存退出。
啟動(dòng),查看集群情況
在啟動(dòng)es的任一節(jié)點(diǎn)上執(zhí)行:
curl -XGET 'http://localhost:9200/_cluster/state?pretty'
返回內(nèi)容:
{
"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" : {
......