elasticsearch集群配置 (Tobe Continue)
准备
首先需要在每个节点有可以正常启动的单节点elasticsearch
elasticsearch集群配置仅需要在elasticsearch.yml添加相应配置
vim /YouPath/elasticsearch-5.1.2/config/elasticsearch.yml
另外在集群配置完毕后还会在任一节点安装Kibana来进行“可视化管理 Elasticsearch”(collating)
基础配置
在其中加入如下配置
cluster.name: clusterName
node.name: “yourEachNodeName”
network.host: yourNodeIp
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["network.host1","network.host2","network.host3"]
这是进行配置的最基础项(http.port和transport.tcp.port应该也可以去掉),主要需要关注的是 ↓
cluster.name是集群名,elasticsearch一般使用多播自动建立集群,只要与其他节点有相同的cluster.name集群名,当启动后有同名节点时它就会自动加入组成集群
-
network.host需要填内网Ip。如果在https://www.cnblogs.com/G-Aurora/p/13111162.html(解决只能通过localhost验证elasticsearch的问题)中已经将network.host改为0.0.0.0,需要进行再修改。若果忘记替换,在elasticsearch.yml出现两个network.host的配置(一个为0.0.0.0,一个为IP)则会出现如下error:
注意node.name和discovery.zen.ping.unicast.hosts需要引号
-
更新版本中(测试版为5.1.2版)该配置更名为discovery.seed_hosts,官网Doc介绍如下
进阶配置
elasticsearch.yml还可以加入许多配置信息,后续使用到我会陆续更新在这里。
在此之前大家可以参考:
- https://zhuanlan.zhihu.com/p/99208091
- https://juejin.im/post/5bad9520f265da0afe62ed95#heading-0
- https://www.cnblogs.com/yjf512/p/4865930.html
- https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery-settings.html (官网7.7Doc)
验证
curl -XGET 'http://OneOfYourNodeIp:9200/_cluster/state?pretty'
由图可见在修改network.host---给network.host“绑定“到某个Ip后可能会造成localhost无法访问,仅能通过ip访问(原因见此)
(Tobe Continue) 正常来说es集群启动后通过上述命令应该会列出所有node的信息,可能正常情况与图中不符,或者因为版本原因显示地不一样,修复中。
内存的拓展
在基础版的ECS上,2G内存是远远不够hadoop+zookeeper+hbase+elasticsearch的,可以通过创建swap分区来解决内存不足的问题,通过下图可以参考下elasticsearch默认配置下需要的内存大小