一、集群搭建
先搭单机,然后集群。这里省略了单机中的一些配置。集群中同样也需要 ;
1. 集群架构:一主二从
mkdir cluster
复制3份 解压后的elasticsearch到cluster
2. 配置:
主机配置: config/elasticsearch.yml 配置文件;
① cluster.name: cluster 集群名称
② node.name: cluster 节点名称
③ node.master: true 这是主机
④ network.host: 192.168.xxx.xxx 服务地址
⑤ http.port: 9200 服务端口号
从机配置:config/elasticsearch.yml 配置文件;
① cluster.name: cluster 集群名称,注意要和主机的一样
② node.name: slave_1 节点名称
③ discovery.zen.ping.unicast.hosts: [“192.168.xxx.xxx”] 这里填写主机的服务地址,用于找到主机
④ network.host: 192.168.xxx.xxx 服务地址
⑤ http.port: 9201 服务端口号
3. JVM 参数 ;如果使用虚拟机搭建集群,可能会存在内存不足。导致集群不能成功启动 ;
启动报错:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x???, ???, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map ??? bytes for committing reserved memory.
修改config/jvm.options下的 :
-Xms1g 为 -Xms512M
-Xmx1g 为 -Xms512M
二、启动 集群 ; 先主后从
bin目录下 sh elasticsearch -d 后台启动;
从机同上;
三、查看集群状态
1. 简单模式
http://ES服务地址:端口号/_cat/nodes
Tips:这里的ES服务可以是主机,也可以从机
2. 完整模式:
http://ES服务地址:端口号/_cat/nodes?v
即在简单模式的URL后面加上了 “?v”
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
???.???.???.??? ?? ?? ? ?.?? 0.?? 0.?? mdi * master
???.???.???.??? ?? ?? ? ?.?? 0.?? 0.?? mdi - slaver-1
???.???.???.??? ?? ?? ? ?.?? 0.?? 0.?? mdi - slaver-2
可以看到ES服务的ip,内存、CPU的使用情况,以及集群名称,谁是主机【master列标为* 的即主机;- 表示从机】
3. JSON格式
http://ES服务地址:端口号/_cluster/stats
响应内容:
{
"_nodes": {
"total": 总节点个数,
"successful": 成功启动的节点个数,
"failed": 0
},
"cluster_name": "集群名称",
"timestamp": 集群启动时的毫秒数,
"status": "green",
"indices": {},
"nodes": {}
}
可以看到总节点个数,成功启动的节点个数,集群名称,集群启动时的毫秒数以及当前的服务状态(集群健康值)
Tips:集群健康值分为:green(健康)、yellow(良好)和red(差)