2022-01-10 SHEIN大数据java开发岗位

2022-01-10 SHEIN大数据java开发岗位,第1张

2022-01-10 SHEIN大数据java开发岗位

面试该岗位,主要问了以下几个问题:

1、MapReduce 的shuffle过程

回答:map线程数据首先会复制到一个环形缓冲区,在环形缓冲区中进行分区和排序,当环形缓冲区达到一个阈值时数据会溢写到磁盘,这个过程可能会有conbine *** 作,最终每个分区的数据生成一个数据已经排序的文件。之后是reduce的shuffle过程,reduce线程将磁盘中每个分区的数据复制到内存缓冲区,进行排序,按照key进行聚合,然后输出数据作为reduce线程的输入数据,经过reduce计算之后生成文件存放到hdfs上。

2、1G的文件256m的分片大小,最终分成几个map线程;map和reduce线程数量控制;

回答:通过mapred.reduce.task或者mapred.max.split.size参数控制;

通过设置mapred.reduce.task来控制reduce数

3、yarn container的内存区域

回答:这个不是很清楚。

4、有没有看过大数据组件的源码

回答:看过yarnchild启动过程部分源码,曾经做过numa绑定yarnchild线程的优化;

5、map的分区可以怎么设计

回答:mapreduce程序partition方法可以指定分区方式,可以对某个key做哈希计算进行分区。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5702134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存