推荐阅读文章列表:大数据开发面试笔记V4.0 || 面试聊数仓第一季 || 小白大数据学习路线
7月11日,百度开启了2024届校园招聘提前批专场!!!
同学们不要担心没准备好,只用准备到8成即可,赶紧投起来,hc有限!!!
为了帮助大家收割百度提前批offer,最近整理了一些百度高频的面试题,题目不多,建议全部吃透!!!
线上断流指的是在变更过程中导致下游数据延迟的时长
解法 1:双链路切换。此解法的关键是再搭建一条相同的实时链路作为备用链路,当变更有状态 SQL 时,可以在备用链路上做回溯,重新计算历史数据,回溯完成后先验证备用链路的结果数据,确保没问题后再在链路最下游的数据服务层切换读取的表,完成整个变更流程。
解法 2:旁路状态生成。与双链路切换不同点在于,这里变更的是链路上的单个作业,思路是临时启动一个旁路作业来回溯,构建出新逻辑的状态,验证数据完成后再重启线上作业,以此完成 SQL 和状态的同时切换。
解法 3:历史状态迁移。前两个方法的思路比较类似,都是基于历史数据重新计算,构建出新状态。但这个思路是基于历史状态迁移出新状态,这种方法构建出的新状态虽然不能保证完整性,但在某些情况下,业务也是可以接受的。目前我们通过改造 State Process API 支持在 SQL 算子及其上下游关系不变的情况下,允许 Join 和 Agg 算子来新增列。
Checkpoint的Chandy-Lamport算法
详细答案见此文->字节最全数开面试题|有同学拿了字节提前批offer
CheckpointCoordinator(检查点协调器) 周期性的向该流应用的所有source算子发送 barrier(屏障)
答案见此文->字节最全数开面试题|有同学拿了字节提前批offer
首先spark的客户端将作业提交给yarn的RM,然后RM会分配container,并且选择合适的NM启动ApplicationMaster,然后AM启动Driver,紧接着向RM申请资源启动executor,Executor 进程启动后会向 Driver 反向注册,全部注册完成后 Driver 开始执行main 函数,当执行到行动算子,触发一个 Job,并根据宽依赖开始划分 stage(阶段的划分),每个 stage 生成对应的 TaskSet(任务的切分),之后将 task 分发到各个 Executor 上执行。
对于窄依赖,不会进行划分,也就是将这些转换操作尽量放在在同一个 stage中,可以实现流水线并行计算。 对于宽依赖,由于有 shuffle 的存在,只能在父 RDD 处理完成后,才能开始接下来的计算,也就是说需要要划分 stage(从后往前,遇到宽依赖就切割stage)
它翻译过来就叫做弹性分布式数据集,是一种数据结构,可以理解成是一个集合。在代码中的话,RDD是一个抽象类。还有一个非常重要的特点:RDD是不保存数据的,仅仅封装了计算逻辑,也就是你直接打印RDD是看不见具体值的。
第一、spark1.0产生有了RDD,spark1.3产生了DataFrame
第二、RDD不支持sparksql操作,但是DataFrame支持sparksql操作
第三、RDD一般会和spark mllib同时使用,但是DataFrame一般不和spark mllib同时使用
reduceByKey、groupByKey、sortByKey、join、repartition等
zab协议;它借鉴了paxos算法,是专门为zookeeper设计的支持崩溃恢复的原子广播协议。paxos算法中采用多个提案者会存在竞争acceptor的问题,于是zab协议就只采用了一个提案者,而zookeeper的一致性就是基于zab协议实现的,也就是只有一个leader可以发起提案。它包括两种基本的工作模式:正常和异常的时候。
首先客户端提交HQL以后,hive通过解析器将SQL转换成抽象语法树,然后通过编译器生成逻辑执行计划,再通过优化器进行优化,最后通过执行器转换为可以运行的物理计划,比如MapReduce/spark,然后提交到yarn上执行
分为UDF、UDAF、UDTF;UDF一对一,UDAF多对一,UDTF一对多
Left Semi Join(左半连接)是 IN/EXISTS 子查询的一种更高效的实现。
select t1.key, t1.value from t1 left semi join t2 on t1.key = t2.key; 等价于 select key, value from t1 where key in ( select key from t2 );
看之前的文章,面试必问!!!
这是本人之前面试被问过的一道题,还是有难度的,可以评论区讨论一下
---------------------------------------------------------
----------------------------------------------------------
#数据人的面试交流地##大数据开发工程师面经##提前批过来人的忠告##百度信息集散地#