文件系统 HDFS,数据库 HBase,消息队列 Kafka,协调服务 Zookeeper,接下来要让大数据存储的生态圈变得更完整,不得不提的就是搜索引擎了,虽然说 ElasticSearch 是以搜索闻名的,但是说到底它还是个数据库,它底层的存储特性使它拥有了毫秒级的全文检索响应能力,很好地补充了大数据在文本检索这块的处理能力。 ES 的创始人 Shay Banon 很好地诠释了伟大的项目是来自于生活的,据说当初 ES 开发的最初目的是为了给他老婆做一个食谱搜索的功能,接下来我们就来看看这个“食谱搜索引擎”在面试官那里能问出些什么花样。
本篇面试内容划重点:架构、读写、调优。
架构与角色职责
ElasticSearch 采用了 Raft 协议来解决共识(Consensus)问题,所以它的各个进程之间的交互逻辑包括选举等和使用 Zab 协议的 Zookeeper 是有点类似的,(毕竟这两种协议都来自于同一个“祖师爷” Paxos)。
- Master 节点:Master 有且仅有一个,如果宕机会通过选举机制再选择出一个(后面有详解),它负责维护集群的状态&#x