蘑菇街 现场面
个人学习笔记: https://zhuanlan.zhihu.com/go-for-it
总共三面 两轮技术面 一轮hr面
一轮技术面:
实习做了啥, 巴拉巴拉 一顿叨叨 顺便套了个近乎, 我实习的公司的数据部门老大 之前就是蘑菇街的平台这边的老大 , 面试官说你们老大之前就是我老板 中间提到我参与的一个实习公司的框架改进 面试官说: 嗯, 是我们老大的风格
hadoop spark的一些基本原理
spark streaming如何实现exactly once:
kafka的receiver API 不开WAL不能实现, 面试官问为啥, 我说的: receiver会把数据拉取到内存中, 一个DStream里面有一部分RDD可以已经提交了, 但是这时候 出问题了, 全部都会重来一遍 可能会有重复计算, 并且kafka的高级消费者api他的offset存储在kafka中, 不是自己管理的 不能针对offset做一些 exactly once处理
说了下 使用kafka低级api的方式
面试官又问: 如何让spark streaming receiver 不开WAL来支持exactly once那?
面试官好坏, 我想了下 举了个 kafka写入时保证exactly once的例子, 幂等生产者 主要就是保证写出结果的幂等性,
我提的方案是在streaming任务的下游来进行保证, 写出结果时 带上每条记录的 key 假设是类似offset的标志性key, 然后下游来兜底
面试官说这个思路也还行吧 , 不过最简单的就是引入一个事务...
jvm的基本原理 内存划分 如何确定是否可回收 gc算法 (又出了一个错, 谈到老年代的gc算法, 标记收集和标记整理 这两个词想不起来了, 短路了 只能说了 一个是标记可回收后 把可回收的删除 会有空间碎片, 一个是标记可回收后 把可回收的整理 需要停下来整理 但是没有碎片==! 就是想不起来名字了.... 哎 )
hashmap concurrenthashmap
数据库的隔离级别 ==! 脑子短路 当时一激动忘了 不过还好 这是最后一个问题, 问的时候 二面面试官已经在门外了, 对整体结果没有大影响
二轮技术面:
面试官比较严肃, 没敢和一面一样笑嘻嘻的
lru的实现方式, 我说了 linkedHashMap的思想 使用hashmap上套一层hashmap
其他都是一些常规问题了 总体都是java 操作系统 数据库的基本问题 没再问 大数据相关的
三轮面试:
又双叒叕见到hr小姐姐了 开心
聊人生 聊规划 hr小姐姐一直打哈欠 然后一直说抱歉
然后面试就结束了 等通知吧
个人学习笔记: https://zhuanlan.zhihu.com/go-for-it