我看到每当我运行Map Reduce任务时,hadoop作业会向我显示完成Map和Reduce任务的百分比。
我知道映射器和缩减器都以分布式方式运行,并且可以报告它们已经处理了多少到控制器。
但是控制器如何知道要处理的总数据?如果控制器试图找出所有输入文件的大小,我会想象效率低下。这是一种粗略的近似吗?
答案 0 :(得分:0)
我没有在hadoop中阅读与此部分相关的所有代码。但有些人想到了,希望它有所帮助
地图任务完成百分比计算:当从机完成一个地图任务时,它会让主机知道,这样主人和管理员就可以方便地知道地图任务竞争的百分比,但是如果是被阻止或杀死此进程完成的任务将被重新分配,并且在该情况下地图完成值将减少。
减少任务完成百分比计算:减少短语包括随机任务和减少任务,当地图任务完成达到5%时,随机任务启动,随机任务主要是从地图任务输出目录中复制数据。所以复制的数据似乎是随机播放部分中的域因子,因为合并排序可以同时运行。在reduce任务中,完成百分比可以通过“迭代器”的处理方式轻松计算。
ps:评论中提到的车辆名称:减少阶段包括复制(完成33%),排序(完成66%)和减少(完成100%)