我正在大约1.22 GB的文件上运行Pig脚本。默认块大小为64MB。我有4个数据节点。 Pig脚本作为输出产生19个文件。
当我运行Pig脚本并看到Job Tracker时,我看到了6个Jobs。
Jobid Priority User Name Map % Complete Map Total Maps Completed Reduce % Complete Reduce Total Reduces Completed Job Scheduling Information Diagnostic Info
job_201207121202_0001 NORMAL user PigLatin:Analysis.pig 100.00% 20 20 100.00% 1 1 NA NA
job_201207121202_0002 NORMAL user PigLatin:Analysis.pig 100.00% 5 5 100.00% 1 1 NA NA
job_201207121202_0003 NORMAL user PigLatin:Analysis.pig 100.00% 2 2 100.00% 1 1 NA NA
job_201207121202_0004 NORMAL user PigLatin:Analysis.pig 100.00% 2 2 100.00% 1 1 NA NA
job_201207121202_0005 NORMAL user PigLatin:Analysis.pig 100.00% 5 5 100.00% 1 1 NA NA
job_201207121202_0006 NORMAL user PigLatin:Analysis.pig 100.00% 5 5 100.00% 1 1 NA NA
根据我的理解,由于输入文件的大小为1.22 GB,块大小为64 MB,因此总共将为该文件创建20个块。我的复制因子为3。由于每个拆分都将有一个 map 作业,因此我将有20个 map 作业,而job_201207121202_0001作业在上面的列表中说是完美的。但是,为什么我还能看到其他5个工作和总共19个Maps任务?
谁能帮我理解这一点。我认为从1.22GB / 64MB〜20开始,它将只有20个 map 和1个 reduce task 。
我是Pig / Hadoop初学者。非常感谢您的帮助。
最佳答案
Pig根据脚本的语义将脚本编译为多个map-reduce作业。粗略地说,加入是MR工作。小组是MR工作。订单是2个MR作业(一个用于抽样分配)。还有其他一些产生MR边界的运算符。
关于hadoop - Pig/MapReduce工作分析概念需要了解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11460985/