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做哈希计算进行分区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值