您的位置:首页 > 职场人生

滴滴面试记录

2017-09-04 16:20 141 查看
一面:

1.自我介绍一下

2.介绍一下实习内容,es如何创建索引,介绍es的整个架构,es如何建立分片,如何对数据进行处理

ES架构:

ES的架构遵循的设计理念有以下几个特征:

a. 合理的默认配置:只需修改节点中的Yaml配置文件,就可以迅捷配置。这和Spring4中对配置的简化有相似的地方。

b. 分布式工作模式:ES强大的Zen发现机制不仅支持组广播也支持点单播,且有“知一点即知天下”之妙。

c. 对等架构:节点之间自动备份分片,且使分片本身和样本之间尽量”远离“,可以避免单点故障。且Master节点和Data节点几乎完全等价。

d. 易于向集群扩充新节点:大大简化研发或运维将新节点加入集群所需的工作。

e. 不对索引中的数据结构增加任何限制:ES支持在一个索引之中存在多种数据类型。

f. 准实时:搜索和版本同步,由于ES是分布式应用,一个重大的挑战就是一致性问题,无论索引还是文档数据,然而事实证明ES表现优秀。

3.实习项目中遇到最大困难,如何解决

4.编程题,说思路,写代码:给定两个日期(yyyymmdd),计算相差天数(注意点:借位问题)

二面:

1.自我介绍一下

2.介绍一下华为实习项目,项目中做了那些工作。

3.ES的分片副本创建时设置为几片,原因?如果创建多的后果?少的后果?

在生产环境中, 随着数据集的增长, 不合理的分配策略可能会给系统的扩展带来严重的问题.对于分布式搜索引擎来说, 分片及副本的分配将是高可用及快速搜索响应的设计核心.主分片与副本都能处理查询请求, 它们的唯一区别在于只有主分片才能处理索引请求.ES自动把这5个主分片分配到2个节点上, 而它们分别对应的副本则在完全不同的节点上. 对,就这是分布式的概念.

稍有富余是好的, 但过度分配分片却是大错特错. 具体定义多少分片很难有定论, 取决于用户的数据量和使用方式. 100个分片, 即便很少使用也可能是好的;而2个分片, 即便使用非常频繁, 也可能是多余的.

分配的每个分片都是有额外的成本的:

每个分片本质上就是一个Lucene索引, 因此会消耗相应的文件句柄, 内存和CPU资源

每个搜索请求会调度到索引的每个分片中. 如果分片分散在不同的节点倒是问题不太. 但当分片开始竞争相同的硬件资源时, 性能便会逐步下降

ES使用词频统计来计算相关性. 当然这些统计也会分配到各个分片上. 如果在大量分片上只维护了很少的数据, 则将导致最终的文档相关性较差

4.副本的好处?分片和副本同步还是异步?如果数据写入失败怎么办?kibana前端用的什么框架?

额外的副本能给你带来更大的容量, 更高的呑吐能力及更强的故障恢复能力.

5.项目中主要的开发内容?

6.对于分布式计算的理解,实习项目的感受

7.一道sql编程题和一道C++编程题,单链表的逆置



三面:

https://segmentfault.com/a/1190000008868585

http://www.cnblogs.com/guguli/p/5218297.html

http://www.cnblogs.com/dennisit/p/4133131.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试 工作