elasticsearch-2.1.1集群搭建初探/填坑

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: elasticsearch2.x发布有一段时间了,抽空把集群搭起来,做点实验-------------------------------------------------------------------------------------正文-------...

elasticsearch2.x发布有一段时间了,抽空把集群搭起来,做点实验
-------------------------------------------------------------------------------------正文------------------------------------------------------------------------------------
elasticsearch1.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
可以不写
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
12月前
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
2010 1
|
7月前
|
Java Linux
CentOS环境搭建Elasticsearch集群
至此,您已成功在CentOS环境下搭建了Elasticsearch集群。通过以上介绍和步骤,相信您对部署Elasticsearch集群有了充分的了解。最后祝您在使用Elasticsearch集群的过程中顺利开展工作!
440 22
|
存储 负载均衡 Java
Elasticsearch集群面试系列文章一
【9月更文挑战第9天】Elasticsearch(简称ES)是一种基于Lucene构建的分布式搜索和分析引擎,广泛用于全文搜索、结构化搜索、分析以及日志实时分析等场景。
215 7
|
存储 监控 安全
Elasticsearch 集群
【11月更文挑战第3天】
245 54
|
缓存 监控 Java
Elasticsearch集群JVM调优
Elasticsearch集群JVM调优
382 5
|
缓存 监控 安全
优化Elasticsearch 集群配置
优化Elasticsearch 集群配置
320 4
|
监控 安全 网络安全
Elasticsearch集群的网络设置
Elasticsearch集群的网络设置
386 3
|
12月前
|
存储 缓存 监控
Elasticsearch集群JVM调优堆外内存
Elasticsearch集群JVM调优堆外内存
244 1
|
12月前
|
监控 Java 测试技术
Elasticsearch集群JVM调优垃圾回收器的选择
Elasticsearch集群JVM调优垃圾回收器的选择
399 1
|
存储 监控 固态存储
Elasticsearch集群硬件与资源分配
Elasticsearch集群硬件与资源分配
274 2