面试公司:阿里巴巴
面试岗位:大数据开发工程师
一面
·简单介绍一下自己以及自己做过的项目;
·Java HashMap 是不是线程安全的?为什么?
·请用 Java 写个单例模式
·知道几种 GC 算法?
·如何实现一个高效的单项列表逆向输出?
·数据湖和数据仓库有什么区别?
·详细介绍下 Flink 的 Checkpoint 执行机制(分布式快照)
·算法题:寻找两个正序数组的中位数
二面
·如何在两个进程间共享数据?线程呢?
·如何在 main 函数里面等待一个线程执行完毕?
·用MapReduce手写一个wordcount,
·用 MapReduce TopK 怎么实现?
·Hudi、Iceberg 和 Delta Lake 哪个熟悉?它们之前有什么区别知道吗?
·请简述 Hudi 的读写流程。
·布隆过滤器的原理知道吗?(在回答 Hudi 写数据的时候提到布隆过滤器,所以面试官问了)。
·算法题:合并两个有序链表。三个有序链表合并?K 个呢?
三面
·Spark Shuffle 读写原理说下,和 MapReduce 的 Shuffle 有什么区别?
·Hudi 支持流批一起处理吗?他是怎么实现的?
·Iceberg 知道吗?实现原理你知道吗?
·Iceberg 的时间旅行是怎么实现的?什么场景下要使用它?
·Hudi 和 Iceberg 你怎么选?为什么。
·算法题:一辆公交车,有 m 站,最多坐 n 人,输入一路上的票信息(即上车下车站),输出会不会超载。
四面
·说一下你熟悉的设计模式?
·synchronized 和 ReentrantLock 区别是什么?
·都知道哪些分布式一致性算法?挑一个你熟悉的说下其原理。
·Join 的实现有哪几种?场景是哪些?
·一条 SQL 从提交到拿到结果都经历了什么?
·说下你理解的数据湖?
·Hudi、Iceberg 和 Delta Lake 怎么选择?
·请简述一下 Flink CDC 原理
验证码登录>
验证码登录>
自动登录 | 忘记密码?
密码登录>
自动登录