远景智能java后台开发凉面
前一天邮件通知面试时间,全程26min,无语
QA
Q:HDFS datanode namenode
A:没看过,不知道
Q:HQL执行过程
A:HQL -> AST -> QB -> Operator Tree -> MR -> Job Tracker -> Task Tracker -> Map -> Shuffle -> Reduce -> Output
捎带了一下Shuffle过程:缓冲 排序 压缩 io 拷贝 归并排序
Q:了解map join吗
A:小表join大表,小表读到内存,map阶段进行join
Q:Hql调优,数据倾斜如何优化
A:
- 原理:某些key的值太多
- 解决方案:
- 小表join大表:同上
- 大表join大表:null值或其他值打散,可使用 concat null rand()
- groupby:map端聚合或skewindata负载均衡
- count(dinstinct):先groupby再count,本质为groupby解决问题
Q:MySQL引擎、事务、索引
A:InnoDB MyISAM,rr ru rc 串行化,默认rr,唯一索引,普通索引,主键索引,组合索引是啥,说了下唯一索引在项目里使用具体场景
Q:如何优化MySQL的sql
A:
- 不join
- 分库分表
- 主从库
- 缓存
Q:其中java项目,云平台如何通信
A:太远了忘了,云平台转发
Q:缓存了解吗,redis缓存穿透
A:就是redis里没有,访问全落在mysql了,可能导致服务器宕机
反问
Q:看贵司做物联网,我最近在看物联网异构数据聚合,求指点
A:nosql orm异构还是文本和streaming聚合什么什么等等
没了,感觉对我没啥兴趣,也没有编程题,jvm啥的都没问,应该凉凉