快手大数据岗位招聘面试题分享
快手面试题
学长1
快手:视频面试
1)一面:50分钟
(1)介绍项目
(2)Flink为什么用aggregate()不用process()
(3)自定义UDF,UDTF实现步骤,有哪些方法?UDTF中的ObjectInspector了解吗?
(4)Flume丢不丢数据?PUT,TAKE事务
(5)SQL题:
1. id department salary manager_id 找出员工薪水比领导薪水高的人员(单表join)
2. student course score 找出哪些学生课程比平均课程成绩高?(记不太清了,用到子查询)
(6)快手的数仓分了3层,OLAP用的是Druid,数据量每天达到PB级,上千个指标,平均每个人跑几百个指标吧。
2)二面:1小时
(1)手撕SQL
①A-天极增量表: uid,module_name,location,date
目标-B全量表: uid,module_name,first_entry_date,first_location
找出两个第一次插入到B表
②user:uid,age,date
order:order_id,order_money,location,date,其中location:{"city","xx"}
双十一场景,找出北京市双十一年龄范围在20-25岁的人中 的人数,人均销售额大于1000的人
③URL: http://www.a.com/home?key1=v1&key2=v2 ?后面的数据做切分,存放到一个JSON中返回,要求用UDF函数
④找出一个List中的最大值和最小值并返回
(2)问到了几个场景题
①Flink设计题
②HBase使用场景
③Redis使用场景
④Druid的一些东西
(3)最后问到了职业规划,闲聊
学长2
1)技术
(1)自我介绍
(2)问了下离线数仓的架构
(3)问了Hive四层架构
(4)问了业务系统8张表的更新方式
2)场景题:
(1)使用SQL或者SparkRdd写出代码
(2)两张表,怎么使用SparkRDD的方式实现Join,代码
Table1
uid,dept_id
Table2
dept_id,dept_name
(3)使用MR或者Spark实现countDistinct(例如求uid数量)