快手大数据开发一、二面凉经
快手
之前在我邮参加了快手的宣讲会,还抽中了唯二的大奖Apple Watch,之后的秋招之路才逐渐顺了一些,所以对快手抱着一些很美好的期待和向往。后续参加了笔试,然后受邀去快手总部参加了现场面试。面试体验都很不错,面试官水平都很高,而且很和蔼可亲,只不过自己知识面不够扎实,没有能走到最后吧。最后面完12:40了,还发了一张餐券,食堂套餐任选一个免费吃,吃的也蛮不错的。除了自己表现不太好,也算为快手给我的奖项和缘分做了个美好的结尾,以后有缘再会!
一面:
1、自我介绍一下
2、Hive的存储引擎了解哪些?例如常用默认的textfile,还了解哪些?orcfile。textfile和orcfile有什么区别?行列存储?是行存储还是列存储?
3、Hive的order by和sort by有什么区别?
4、Hive的udf、udaf和udtf了解过吗?自己有没有写过udf?
5、SQL题 一个login_in表,userid、login_time、ip,表数据量比较大,千万级甚至上亿级别。取出最近10条登录的数据(考虑上数据量巨大)。常规做法全局order by limit;对userid或ip用窗口函数做分区加编号再过滤,分区内login_time倒序排,之后再全局order by。怎么样用sort by的方式去实现?回答distribute by + sort by。
6、Hive表的内部表和外部表有什么区别?实际实习工作中有用到过吗?用的是内部表还是外部表?
7、Hive中grouping sets、with cube等这些高级的函数有没有使用过?
8、Hive的优化点,怎么去写更优的Hive语句,如何去优化?在实习工作中有没有遇到过?
9、数据倾斜的解决方案?
10、SQL题,还是login_in表,统计登录的总条数和登录的总人数,考虑下数据量很大,一个人可能有多条登录数据。
11、介绍一下HBase的一些特性。在删除HBase中的一个数据的时候,它什么时候真正的进行删除呢?当你进行删除操作,它是立马就把数据删除掉了吗?
12、SQL题,还是login_in表,算总人数的时候会在Hive里面起几个MR。
13、Java平常写的多么?Java的HashMap和HashTable有什么区别?线程安全的Map是什么?实际用过ConcurrentHashMap吗?
14、抽象类与接口的区别?方法的默认实现?接口中可以定义常量么?
15、Java1.8的新特性你了解么?stream流了解吗?
16、Java线程写过吗?怎么写一个线程?实际项目中写过么?
17、线程池了解过吗?
18、ArrayList和LinkedList都用过吗?介绍一下?
19、现在有一个String的对象“ABCD”,如何将这个字符串反转生成一个新的字符串。
20、MySQL用过吧,它有什么引擎?InnoDB和MyISAM有什么区别?
21、MyISAM的一些索引,单列索引、组合索引、主键、唯一索引都什么区别?
22、Shell中统计一个文件的行数用什么指令?在Shell脚本中获取传入参数的总个数?
23、Shell中压缩一个文件夹,用什么指令?
24、SQL题,还是login_in表,加一个pay_info表,字段包括userid,pay_time,payment_amout。要求查出登录了但是未支付的总人数,一个用户也会有多条支付的数据。注意多条重复关联去重问题。
25、where和having有什么区别?
26、有了解过Flume、Kafka吗?
27、你是保研的还是考研的?
28、你的方向是大数据哪一块?离线还是数仓?
二面:
1、自我介绍一下
2、在百度是在哪个部门实习啊?在哪个地点?在华为做的东西偏后台对吧?华为在哪个地方?
live_id | start_time | end_time |
1 | 3:00 | 4:00 |
2 | 3:30 | 4:30 |
4、检索的一张搜索日志表query_log,关键字段query词,类目kind,时间timestamp。求每一个类目下,检索次数top10的query以及它的检索次数。
5、如果有一些类目的query词特别多,在执行过程中会出现一些数据倾斜的问题,这种情况下应该如何解决呢?
6、join操作底层的MapReduce是怎么去执行的?
7、select、from、where、group by、order by在一个Hive语句中,这些执行的顺序,排一下序号。
8、聊一下你之前做的项目,先说一下在百度的吧,具体问了问项目内容。
9、这个涉及Spark SQL的项目是做什么?
10、导师项目涉及的HBase数据量大么?有自己搭的集群是么?
11、实时相关的框架接触过吗?