【面经】阿里健康-2017年8月29日,散招实习生

2,905 阅读4分钟

一塌糊涂。

终究不是因为电面才一塌糊涂,终究是因为自己太菜。

一面(结果未知)

一面喜欢问理解,讲逻辑。跟涛神路子不一样,涛神路子野,只讲逻辑。

理论基础(全跪)

对分布式的理解

面试官:“我理解你的三个主要技能是Java、并发和分布式,对吧?”
小菜鸡:“我觉得只有Java掌握了基本使用,并发和分布式只能说在学习。”
面试官:“好,那你对分布式的理解是什么?”
。。。

不过仔细想想,这样问也没毛病。如果我说熟悉分布式,那才可能是真的提问了。。。我勉强按照大问题分解为小问题,但是实际上还有容错性等等,非常多的内容。当时学分布式的时候正在实习,这学期得认真学一遍了。

容错性的几种方案

只答上来了冗余备份。

冗余备份的几种方案

我答的是:以存储为例,可按照冗余的对象可分为 对存储单位冗余(如HDFS中对Block冗余)、对存储对象冗余(如直接备份整个文件)、对存储介质备份(如磁盘冗余阵列)、对存储系统冗余(如HA)。

面试官期待的是:物理冗余(多备份)、时间冗余(超时重发)、软件冗余(HA)、信息冗余(校验和)。

源码

围绕HDFS写文件的过程讲述HDFS中NameNode、SecondaryNameNode、DataNode的作用

最开始面试官提问的很模糊,,不说HDFS,就说分布式系统,,,搞得我只能根据HDFS抽象着回答。其实我觉得这一点是面试官文档问的不好,总之后来面试直接要求我回答两个问题:

  1. put大文件的过程(顺着我开始说的大问题分解为小问题的思路描述,实在贴心)
  2. 写文件过程中,DN挂了怎么办

这俩问题之前面试陌陌答过一次了,这次提前声明了源码版本,才开始讲。依旧被评价讲的啰嗦。

Yarn中主要有哪些组件(小跪)

  • 最高层:ResourceManager、NodeManager(丢了AppMaster)
  • ResourceManager上细分:ResourceTracker、ResourceScheduler、安全相关的服务等
  • NodeManager上细分:NodeStatusUpdater、ContaineManager、安全相关的服务等

就是我丢的那个,,,我后来知道面试官只是希望我答RM、NM、AM。

为什么Yarn能够支持多种多样的框架

这得益于Yarn的两层调度机制,RM只负责资源分配,具体的业务逻辑由AM负责,AM根据业务逻辑向RM申请Contaienr。

项目

讲一个你觉得最有挑战的项目

讲的vulture,被啪啪啪的批评讲的啰嗦。

总结

第一次经历这种模式:一面之后,结果未知的等待二面。第一次有准备的经历电面。听一面的面试官说,二面你想面谈可以来公司,三面是部门老大,在杭州,应该也是电面。我的内心是崩溃的,,,可是我还是要练啊,,拿阿里练手真是奢侈啊T_T。

表现不好的本质原因还是自己太菜。但其实也想明白了一点,我之所以电面比面谈表现差,是因为自己表达能力不好,面谈还可以通过写写画画,让面试官明白自己想表达的意思,但电面几乎就只能靠嘴皮子了——沟通不畅、吐字不清、逻辑混乱都是大bug。

到今天写完面经的时候,还没收到二面通知,估计是挂了。这个面试官,看不上我加我微信干嘛呢T_T

给自己的建议:

  • 耐心学习分布式系统的理论知识,不管为了面试还是深入都是必要的
  • 还是讲不好源码和项目,多练习
  • 项目介绍三步骤:目标、我产出的价值、项目收益
  • 面试问答三步骤:明确问题、拆分问题、简洁概括

本文链接:【面经】阿里健康-2017年8月29日,散招实习生
作者:猴子007
出处:monkeysayhi.github.io
本文基于 知识共享署名-相同方式共享 4.0 国际许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名及链接。