目录
1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
3、elasticsearch 索引数据多了怎么办,如何调优,部署
4、elasticsearch 是如何实现 master 选举的
5、详细描述一下 Elasticsearch 索引文档的过程
7、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
9、Elasticsearch 是如何实现 Master 选举的?
10、Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个 master,另外 10 个选了另一个 master,怎么办?
1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
面试官
:想了解应聘者之前公司接触的
ES
使用场景、规模,有没有做过比较大规模的索引设计、规划、调优。
解答
:
如实结合自己的实践场景回答即可。
比如:
ES
集群架构
13
个节点,索引根据通道不同共
20+
索引,根据日期,每日递增 20+
,索引:
10
分片,每日递增
1
亿
+
数据,每个通道每天索引大小控制:150GB
之内。
仅索引层面调优手段:
1.1 设计阶段调优
1
、根据业务增量需求,采取基于日期模板创建索引,通过
roll over API
滚动索引;
2
、使用别名进行索引管理;
3
、每天凌晨定时对索引做
force_merge
操作,以释放空间;
4
、采取冷热分离机制,热数据存储到
SSD
,提高检索效率;冷数据定期进行
shrink操作,以缩减存储;
5
、采取
curator
进行索引的生命周期管理;
6
、仅针对需要分词的字段,合理的设置分词器;
7
、
Mapping
阶段充分结合各个字段的属性,是否需要检索、是否需要存储等。
1.2 写入调优
1
、写入前副本数设置为
0
;
2
、写入前关闭
refresh_interval
设置为
-1
,禁用刷新机制;
3
、写入过程中:采取
bulk
批量写入;
4
、写入后恢复副本数和刷新间隔;
5
、尽量使用自动生成的
id
。
1.3 查询调优
1
、禁用
wildcard
;
2
、禁用批量
terms
(成百上千的场景);
3
、充分利用倒排索引机制,能
keyword
类型尽量
keyword
;
4
、数据量大时候,可以先基于时间敲定索引再检索;
5
、设置合理的路由机制。
1.4 其他调优
部署调优,业务调优等。
上面的提及一部分,面试者就基本对你之前的实践或者运维经验有所评估了。
2、elasticsearch 的倒排索引是什么
面试官
:想了解你对基础概念的认知。
解答
:通俗解释一下就可以。
传统的我们的检索是通过文章,逐个遍历找到对应关键词的位置。
而倒排索引,是通过分词策略,形成了词和文章的映射关系表,这种词典
+
映射表,即为倒排索引。