1. 介绍一下第一个项目
2. 一共有几台机器,各个组件如何配置的
zk :
datanode:
namenode:
journalNode:
hiveServer2:
3. 每天的数据量,集群存储量为多少?
原有数据8T,每天的数据增量为2G左右,集群的存储量为70T
4. 有多少张表,比如,那几张表,有哪些字段?
用户新增主题
ods:ods_start_log
dwd: dwd_start_log
根据mid聚合,利用concat_ws将数据集合连接成一个数据
dws:dws_uv_detail_day,dws_uv_detail_week,dws_uv_detail_month
分别增加日期字段,所在周一周日,以及所在月的起始结束字段
ads:ads_uv_count
`dt` string COMMENT '统计日期',
`day_count` bigint COMMENT '当日用户数量',
`wk_count` bigint COMMENT '当周用户数量',
`mn_count` bigint COMMENT '当月用户数量',
`is_weekend` string COMMENT 'Y,N是否是周末,用于得到本周最终结果',
`is_monthend` string COMMENT 'Y,N是否是月末,用于得到本月最终结果'
用户留存主题:
dws:dws_uv_detail_day+dws_new_mid_day --> dws_new_mid_day
dws_uv_detail_day left join dws_new_mid_day on 前者.mid=后者.mid
where 日期=当天 and 后者.mid=null
ads: ads_new_mid_count
`create_date` string comment '创建时间' ,
`new_mid_count` BIGINT comment '新增设备数量'
6. 列举几条hive sql语句?统计的指标是什么?多长时间运行一次?有开启什么参数吗?
7. 说说订单模块主要的类,主要有什么功能,类与类之间你是如何抽象的?说说下单的流程?
8. 项目中遇到了什么难点?
9. 为什么要用kafka,你还知道其他的消息队列吗?说说他们之间使用场景的区别?
10. 你用到了redis,那你知道memcache吗,他们间使用场景的区别?
hadoop+spark+hive+redis+zookeeper+mongodb+kafka+flume
10. 介绍一下第二个项目
主要分为两块,实时的推送和离线的计算
实时的,flume-->kafka->kafka [uid,mid,score,timestamp]
redis [uid->[(mid,score)]]
电影相似矩阵(广播) [mid->[(mid,score)]]
spark streaming 计算出结果然后写回到数据库
离线:spark任务,每天凌晨定时运行,计算电影相似矩阵,电影top10,分类电影前100等等
11. 每天的数据量是多少,一共有多少张表,列举几张及其字段
Movies,Ratings,Tag,User,AverageMoviesScore【电影平均评分表】,
StreamRecs【用户实时电影推荐矩阵】,GenresTopMovies【电影类别 TOP10】
MovieRecs【电影相似性矩阵】等等一共11个表,数据量不大一共2G
12. 说下这个项目遇到了什么难点
redis缓存用户最近K次评分
13. flume进行了哪些配置
14. kafka进行了哪些配置
15. hive进行了哪些配置
16. 项目中离线统计了哪些指标,离线计算的流程(数据源到目标数据源)
17. 说说实时计算统计的是什么,它的流程