需要pig/mapreduce作业分析概念理解

qnzebej0  于 2021-06-24  发布在  Pig
关注(0)|答案(3)|浏览(333)

我正在一个大约1.22gb的文件上运行一个pig脚本。默认块大小为64mb。我有4个数据节点。pig脚本作为输出生成19个文件。
当我运行pig脚本并看到job tracker时,我看到了6个作业。

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.22gb,块大小是64mb,因此将为该文件创建总共20个块。我的复制因子是3。因为我将有一个Map作业为每个分裂,我将有20个Map作业和作业20120712102\u0001作业说,在上面的列表,是完美的。然而,为什么我看到其他5个工作和其他19个Map任务?
谁能帮我理解这个。我以为它只有20个map和1个reduce job,因为1.22gb/64mb~20。
我是一个Pig/hadoop初学者。非常感谢你的帮助。

o8x7eapl

o8x7eapl1#

Pig是用来拴住乔布斯的一层薄皮。
对于mr作业,“块大小”(从技术上讲是块大小)决定Map器的数量,但是对于pig,mr是基本单位,而不是块大小。
根据您对数据执行的etl类型,pig会将其Map到单个/链接的多个mr作业。
例如:a=load'/input'使用pigstorage('|')as(a:chararray)将a存储到'/output';这个pigscript只生成只Map的作业,甚至不使用缩减器。
一个使用groupby的脚本,后跟一个join,将产生2个mr jobs。
pig支持的每个操作都可以Map到mr:
加入:1 mr
组员:1人
过滤器:可以在Map器或还原器阶段完成
加载:Map器
存储:Map器或还原器
foreach:Map器或还原器

rmbxnbpk

rmbxnbpk2#

你需要分享你的Pig脚本给任何人一个真正的信心给出答案,但最有可能你的脚本是足够复杂的,执行所有阶段需要6个map reduce作业才能完成
您可以看到,执行的第二个作业确实运行了20个Map器(1.22gb/64mb=19.52,这将需要20个Map器):
普通用户piglatin:analysis.pig 100.00% 20 100.00%1不适用工作\u 20120712102 \u 0002
除此之外,谁知道你还在做什么-你是否用不同的输入文件多次提交同一个脚本?

jjhzyzn0

jjhzyzn03#

pig根据脚本的语义将脚本编译成多个map reduce作业。粗略地说,加入是一个先生的工作。团队是一种工作。订单是2个mr jobs(一个用于抽样分发)。还有一些其他操作符可以生成mr边界。

相关问题