共计 1966 个字符,预计需要花费 5 分钟才能阅读完成。
这篇文章主要为大家展示了“elasticsearch-2.1.1 集群搭建的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“elasticsearch-2.1.1 集群搭建的示例分析”这篇文章吧。
elasticsearch3.x 发布有一段时间了,抽空把集群搭起来,做点实验
————————————————————————————- 正文 ————————————————————————————
elasticsearch2.7 的搭建非常简单,只需要把 tar.gz 的包下载到 linux 服务器上解压缩,然后在 bin 目录下启动 es 即可,
集群的搭建也非常简单,保证 cluster_name 一致,node_name 不一致就好了,
可以在同一个网段自动发现新节点,也可以在配置文件的 discovery.zen.ping.unicast.hosts 属性中指定集群的节点 IP;
———————————————————————————- 接下来开始填坑 ——————————————————————————
启动失败 —-
坑一:Exception in thread main java.lang.RuntimeException: don t run elasticsearch as root.
填坑:解释为“防止 attacker 获取 root 权限”,如果是 RPM 包安装,会自动创建 elastsearch 组和 elastsearch 用户,设置好密码,换一个用户启动即可
坑二:Increase RLIMIT_MEMLOCK, soft limit: XXXXX, hard limit: XXXXX
填坑:es 为了性能考虑,推荐关掉 swap,并锁定一部分 mem,按照日志中的指引操作即可
一般处理好这两个,注意一下文件和日志的权限,基本就能正常的启动了;
搭建集群失败 –
首先要注意的一点,在 1.7 的时候,es 判断集群是否可用时,会用 index.number_of_replicas 去判断,
但是在 2.1.1 中,这个变成了 discovery.zen.minimum_master_nodes,当集群的 node 低于设定值的时候,集群会无法访问
PS:这个参数在介绍中是用来防止选举 master 发生脑裂的一个参数,实际上当存活节点数低于这个值,就选举不出 master 了;
测试中采用四个 node 来搭建集群
坑三:手动把四个 host 写进了 discovery.zen.ping.unicast.hosts,但是没有手动指定 discovery.zen.minimum_master_nodes 的值,每一个 node 启动以后都把自己设置为 Master
填坑:network.host 默认采用的是 127.0.0.1,这个问题可能会受到 hosts 的影响,为了意义明确,写成机器的 IP,问题解决
坑四:手动把四个 host 写进了 discovery.zen.ping.unicast.hosts,并且手动指定 discovery.zen.minimum_master_nodes 的值,启动 node 以后出现报错,ping 其他的 node 超时 or 不停的等待初始化;
填坑:推测 es 自身应该是自动计算这个 discovery.zen.minimum_master_nodes 的,如果手动指定以后,往集群中添加机器时,数量小于 discovery.zen.minimum_master_nodes 就会出现这种现象,
只需要继续往里面添加节点,直到超过手动指定的值,集群会自动选举 Master,并正常运转起来。
总结:
不要用 root 启动,修改 memlock 的设置,手动指定 network.host 的值,discovery.zen.minimum_master_nodes 可以手动写,也可以不写,保证 cluster_name 一致,node_name 不一致,es2.1.1 的集群就可以正常启动了
PS:jdk 至少是 1.7,作为测试用的话,ES_HEAP_SIZE 可以不写
以上是“elasticsearch-2.1.1 集群搭建的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!