大数据开发实习面经(阿里、360、腾讯)
我是末流985本科大三生,找一个大数据方向的实习。因为没有课了,所以可以实习六个月左右。
阿里
时间: 2020年3月26日
一面
阿里一面的时候,刚刚开始复习。Python Java等等都还没看。只看了下大数据相关的知识。凉的明明白白。
- 写一道算法题,旋转数组求最小值(剑指offer面试题11)。当时只记得是二分查找,没写出来。
- 问下Java GC (不会)
- 问下Python GIL(不会)
非常感谢这位老师,面试之后就不再觉得自己很厉害了。我知道自己还有太多要复习的了。自己还是把面试想得太简单,周围牛人太多了。
360
一面 43min:
2020年4月8日
- 自我介绍
- 问了两个项目, 问了下项目中如何实现的Mysql和hdfs数据同步
- 讲一下对Hadoop的了解
讲了下HDFS原理、MapReduce的过程,想讲HDFS检查点机制没让讲。 - Spark和MapReduce的区别?是不是用了Spark就不需要MapReduce了?(答得不太好)
- 问对Hive的了解? 自己提了下数据倾斜
- 如果有海量数据,如何求Top10?(说错了一块,后来又改过来了)
- Linux平常用的指令?说了 ls 、 ll 、 df 、 nohup & 、ps 、 kill 等等
Hadoop用到的指令 Hadoop fs -ls 、 mkdir、 hdfs fsck(查看块信息) - 用什么语言比较多? (我用的py比较多) Python常用的数据类型? list 和 tuple的区别?
回答了下 不可变对象和可变对象 - 常用的python库(requests 、bs4 、keras 等等)如何安装包
- 算法题:数组去重 上台阶、动态规划和递归的区别
- 还有什么问题要问我吗?(问了下缺不缺hc、主要工作内容)
二面 23min
2020年4月15日
全程问项目,同时问了很多有没有看过Spark 源码 ES源码 Flask源码(都没看过)。
各个项目问的比较深,算法模型等等。
HR面 30min
2020年4月20日
- 可以实习多久
- 如何解决做项目和社团和日常生活的平衡问题
- 简单介绍下流计算的spark streaming storm flink的优缺点
- 未来发展等等
腾讯
腾讯是找了内推,后台开发,但是与大数据相关。面试都在腾讯会议,一面手撕代码是屏幕共享,二面手撕代码在腾讯文档。
一面
2020年4月23日
- 自我介绍。
- Spark和Hadoop的区别
- MR流程、RDD流程
- new malloc区别 epoll原理看过吗? 讲一下多态
- 写到算法题吧:二分查找,写一下旋转数组最小值(又是这道题。我说这道题之前做过,面试官没再让我写)。
二面
2020年4月28日
- 自我介绍、在家里?没开学?
- 学过Hadoop,讲一下MR流程。说一下Partition分区的优化是怎么做的(Partition没答出来)
MR会有数据倾斜,讲一下如何解决(说了一些方法,被要求说的更详细一些。比如为什么增加Reduce数量就可以提高效率,如何自定义分区,如何重新设计key) - 然后问的是Hadoop Streaming (没听说过,讲了下spark streaming)
- 看简历上有个socket项目,问如何讲一下流程,问如何从socket中提取数据(时间太长,完全记不清了)
- 写个算法题。 给一个树,每个节点的val都有取或不取两种状态。限定条件是,直接连接的节点不能同时取或者不取(比如父子节点) 想的是分成四次递归。问如何剪枝。没答出来
- 上面那个题没想法了。那咱们换个,给一个二叉树和两个节点 a ,b 找出二叉树的最近公共祖先。(剑指offer原题 最后一题)
平时大部分都是Py Java Scala开发,很少用C++,就很难受。还需要多学习啊。
字节跳动
一面
- 自我介绍
- 介绍项目:详细项目中介绍下深度协同过滤算法,和mysql与hdfs同步的策略
- 写两个Mysql
① 给出两个表,计算left join的结果
② 一个广告的表,包含广告的id,广告的开始时间,广告的结束时间,给出一个时间(比如2020-03-02 —— 2020-04-02)。所有与这个日期有交集的广告id. - 写两个算法题
①写个层次遍历
②写个排序数组中查找k这个数出现的个数 (我用了二分查找,然后向前向后搜索) - Spark会吧。介绍下宽窄依赖。(从action 讲到 shuffle ,讲了Aggregator,讲了下DAG解析的阶段划分)
- Hive会用吧。讲一下内表和外表的区别
- 学过Mysql,讲一下索引的数据结构吧(自己说了下聚集索引和非聚集索引)
- 还有 sql 各种join之间的不同
二面
- 自我介绍
- 写个题目吧 把一个数字转换成汉字 比如1001 “一千零一" 用了递归但是写的太复杂,有点拉分
- 讲一下你觉得最难的两个项目
- Spark cache和 persite的区别(讲了下广播机制,没回答好)
- 你未来想学些什么(简单说了下Flink 、 Spark源码和参数服务器)
- 还有什么问我吗
HR面
- 自我介绍
- 想实习多久
- 未来读研吗
- 来北京租房吗
- 父母对来北京的意见
- 你觉得自己有什么缺点 (最后说了个自己熬夜多 )
其他
也投了很多其他的公司,比如蘑菇街、百度、知乎等等,现在还没有消息,可能是不太匹配吧。
总结
感觉自己的技术还是有很大不足啊。自己的复习的路线是:
- 语言: Python、Java、scala面试题
- 计算机基础:计算机网络、操作系统和数据库(索引是重点)
- 大数据相关:Hadoop、Spark、hive、hbase、flume、kakfa、storm等
- 算法:主要是刷了一下剑指offer。