使用ElasticSearch踩过的坑

2020-05-27 00:00:00 数据 集群 节点 队列 恢复

版权申明:
此文章于公众号程序员在深圳,搜索 studycode 即可关注
本文无需授权即可转载,转载时请务必注明作者

使用ElasticSearch将近3个月了,在使用过程中,陆陆续续踩了不少坑,每次觉得无法逾越时,心里都想放弃,一是因为这东西要完全掌握不是那么容易,需要花很多时间;二是如果继续使用曾经用过的zabbix,说不定可以很快满足眼前的需求,从而可以抽身做其他事情。但坚持下来,就一定能从坑里爬起来,从而对这个系统更加了解,并利用这头”猛兽”帮助我做更多事情。原因很简单,ElasticSearch除了是一个分布式数据库,还是一个扩展性和可用性都很强的近实时搜索引擎。

目前为止,踩过以下几个坑:

  1. 集群搭建不成功
  2. 未使用内网IP,导致恢复缓慢
  3. 未使用队列及logstash,导致数据丢失
  4. Master和DataNode未分离,导致集群不稳定
  5. Logstash吞吐量问题
  6. Logstash如何创建Mapping
  7. head插件安装错误

犯了这么多错误基本上都是使用不当、以偏概全的原因,以为看了一点文档,就凭直觉可以猜测到系统的所有内容,造成了后续问题的不断涌现,下面就逐一说一下淌坑过程

集群搭建不成功

一开始是在单机上玩ElasticSearch的,上生产环境肯定要使用它的集群功能,但文档说只需要在elasticsearch.yml中设置cluster.name和node.name即可,ElasticSearch节点启动时会自动发现集群并加入到集群,但全部设置完毕后,竟无法使各个节点组成集群,后发现这种方法只在一台机器上有效,而要组成集群,需要在每台节点做以下配置:

discovery.zen.ping.unicast.hosts: ["Node1_IP:9300", "Node2_IP:9300", "Node3_IP:9300"]

相关文章