一面
1.spark调优,spark数据倾斜体现在项目中,具体在哪些场景出现了?
2.订单服务,仓储服务以及其他业务模块之前是怎么进行关联的?是通过消息队列异步的吗?
3.sql中row_number和rank的区别?
4.负责的模块中,你主要做了哪些工作?
5.订单的整个流转过程?
6.rabbitmq怎么避免重复消费?
7.rabbitmq中怎么去通过消息日志判断消息被消费了,简单说下过程。
8.你觉得你工作中有哪些方面能做的更好?
算法题:
给定一个整数数组,判断这个数组是否可以重新分组,使得每个组内的元素个数为w,且这些数字是连续的数字。
二面
1.项目中数据仓库是怎么分层的?
2.怎么保证数据仓库每层之间的数据完整性?
3.原始数据层中,用于存储原始数据的hadoop高可用架构的主备namenode节点之间是怎么保证数据同步的?
4.为什么要将主节点的写操作对应的editlog文件放在共享文件中,而不是直接让备节点去主节点中拉取文件同步呢?
5.namenode主备同步的共享文件保存在哪里?在主备节点还是另外一台机器?
6.namenode主备同步的共享数据文件是怎么保证高可用的?
7.数据仓库中层与层之间,怎么保证某一层数据出现变化,该层的下游能够感知到?(数据血缘)
8.产品问你,你通过sparksql计算出的数据,如何保证是正确的,该如何回答?(数据质量如何保证)
9.spark的计算过程是怎样的?
10.sparksql转化为spark的具体任务,转化的过程是怎样的?
11.spark计算过程中,没有使用会产生shuffle的算子,会产生shuffle吗?
12.写sparksql从hive中获取数据,如何解决一次性获取大量数据加载进spark节点内存,从而导致网络传输带宽压力过大的问题?
13算法题
M * N 的矩阵。
例子:
3 * 5
1 2 3 4 5
3 4 5 6 7
2 3 4 5 6
特征:每一行是单调递增的。
目标:尽可能快的找到整个矩阵中第 k 小的数字。
二面卒,前期没有准备好算法的训练,投的太早,建议还是小公司先面,大公司往后放放。