ElasticSearch集群搭建
首先准备三台虚拟机,克隆即可。
要保证你原先的ES启动且访问9100端口没有问题。
搭建ES集群非常简单,只需要在ES下的config文件夹下的elasticsearch.yml文件进行配置即可,配置如下
cluster.name: my-es //集群名称,三台机器要保持一致 node.name: node-110 //单个es的名称 network.host: 192.168.x.x //本机ip discovery.zen.ping.multicast.enabled: false //多播自动发现禁用开关(6.0以上版本停用了) node.master: false //设置主节点 node.data: true //设置子节点 discovery.zen.ping.unicast.hosts: ["192.168.1.11"] //主节点ip,端口号可以不设置,默认9300
这是子机器的配置,配置主机器只需要将node.master: true , node.data: false即可。
然后启动集群查看健康值
curl -XGET http://localhost:9200/_cluster/health?pretty
在ES集群中可以监控统计很多信息,但是只有一个是最重要的:集群健康(cluster health)。 返回的status字段提供的值反映了集群整体的健康程度,它的状态是由系统中最差的分片决定的,
集群健康有三种状态:
1.green:所有主要分片和复制分片都可用
2.yellow:所有主要分片可用,但不是所有复制分片都可用
3.red:不是所有的主要分片都可用
最后访问http://masterip/9100访问,创建索引查看,如果出现以下格式则证明集群成功
注意!!!!
Failed to send join request to master [{node-1}{WbcP0pC_T32jWpYvu5is1A}{2_LCVHx1QEaBZYZ7XQEkMg}{10.10.11.200}{10.10.11.200:9300}], reason [RemoteTransportException[[node-1][10.10.11.200:9300][internal:discovery/zen/join]]; nested: IllegalArgumentException[can't add node {node-2}{WbcP0pC_T32jWpYvu5is1A}{p-HCgFLvSFaTynjKSeqXyA}{10.10.11.200}{10.10.11.200:9301}, found existing node {node-1}{WbcP0pC_T32jWpYvu5is1A}{2_LCVHx1QEaBZYZ7XQEkMg}{10.10.11.200}{10.10.11.200:9300} with the same id but is a different node instance]; ]
问题原因:要是部署的时候从一个节点复制elasticsearch文件夹,其他节点可能包含被复制节点的data文件数据,需要把data文件下的文件清空
参考博客:http://www.cnblogs.com/jstarseven/p/6803054.html