準備的集群機器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" : {
......