这可能是最容易搭建的集群环境了,想到 Hadoop cluster 的艰难搭建,真是不可同语!
简单的说,就是在同一局域网的不同 node 上,安装相同版本的 ElasticSearch 软件,如果用到插件,建议也都安装同样版本。修改各自 node 上 {elasticsearch home}/conf/elasticsearch.yml 文件,将 cluster.name 值的注释取消,并设置为相同的值。启动各 node 的 elasticsearch 后,它们就组成一个 cluster 了,可以认为是首先启动的 node 建立了 cluster,随后启动的 node 会自动寻找并加入这个 cluster。
我用了三台机器,不同的 OS 和 JDK 做的这个实验:
1. 192.168.0.106, Debian 7, Oracle JDK 1.8.0_25
2. 192.168.0.108, Windows 7, Oracle JDK 1.8.0_05
3. 192.168.0.119, Ubuntu Server 14.10, openjdk 1.8.0_40-internal(这里我用的是虚拟机)
每台机器上的 elasticsearch 都安装了bigdesk, 除了 Windows 版本上不正常之外,可访问其余两个:
http://192.168.0.106:9200/_plugin/bigdesk/#nodes
http://192.168.0.119:9200/_plugin/bigdesk/#nodes
以上两个页面中显示的内容是一样的,第一个启动的 node,自动成为 master node, 有五星标记。以下是具体的三张截图供参考
1. Debian 的 elasticsearch 实例
2. Window 7 的 elasticsearch 实例
3. Ubuntu Server 的 elasticsearch 实例
以上每个 node 名称,因为没有在配置文件中指定,就由系统自动生成,每次都不一样。
master node 漂移现象
ES cluster 中如果只设置 cluster.name, 不设置其他项,则首先启动的 node 自动成为 master node. 如果 master node 关闭,新的 master node 会以随机的方式在 data nodes 中产生。一个 node 成为 master node 后,关闭再重启 ES,在它关闭的时候,会有新的 master node 产生,故这个 node 在再次加入 cluster 时,会成为 data node.
注:
单个 node 上的 ElasticSearch 及其插件安装参本站的 Install ElasticSearch and its plugins