目录
1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
3、elasticsearch 索引数据多了怎么办,如何调优,部署
4、elasticsearch 是如何实现 master 选举的
5、详细描述一下 Elasticsearch 索引文档的过程
7、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
9、Elasticsearch 是如何实现 Master 选举的?
10、Elasticsearch 中的节点(比如共 20 个),其中的 10 个
12、详细描述一下 Elasticsearch 索引文档的过程。
13、Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎。
14、Elasticsearch是一个高度可伸缩的开源全文搜索和分析引擎。它允许您快速和接近实时地存储、搜索和分析大量数据。
15、详细描述一下 Elasticsearch 更新和删除文档的过程。
16、详细描述一下 Elasticsearch 搜索的过程。
17、在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?
18、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
19、对于 GC 方面,在使用 Elasticsearch 时要注意什么?
20、Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?
21、在并发情况下,Elasticsearch 如果保证读写一致?
前言
随着企业对近实时搜索的迫切需求,Elasticsearch 受到越来越多的关注,无论是阿里、腾讯、京东等互联网企业,还是平安、顺丰等传统企业都对 Elasticsearch 有广泛的使用,但是在 Elasticsearch 6.8 发布以前,大部分 Elasticsearch 功能都是付费的,开源版本的 Elasticsearch 在集群管控方面能力有限,鉴于此,通用的实施方案就是给 Elasticsearch 添加一层网关,从而实现对 Elasticsearch 的管控。
小编分享的这份金三银四Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等26个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!【持续更新中!】
完整版Java面试题地址:2021最新面试题合集集锦。
Elasticsearch面试题
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 的倒排索引是什么
lucene 从 4+版本后开始大量使用的数据结构是 FST。FST 有两个优点:
(1