首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要了解Pig/MapReduce作业分析概念

需要了解Pig/MapReduce作业分析概念
EN

Stack Overflow用户
提问于 2012-07-13 05:29:56
回答 3查看 1.1K关注 0票数 0

我在一个大约1.22 GB的文件上运行一个Pig脚本。默认区块大小为64MB。我有4个数据节点。作为输出的Pig脚本生成19个文件。

当我运行Pig脚本并看到Job Tracker时,我看到了6个作业。

代码语言:javascript
复制
       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,区块大小为64MB,因此将为该文件创建总共20个区块。我的复制因子是3。因为我的每个拆分都有一个映射作业,所以我将有20个映射作业,job_201207121202_0001作业在上面的列表中说明了这一点,这是完美的。然而,为什么我看到另外5个工作和另外19个地图任务?

有没有人能帮我理解一下。我认为自从1.22 It /64MB~ 20以来,它将只有20个map和1个reduce作业。

我是一个Pig/Hadoop初学者。真的很感谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-24 11:52:39

Pig根据脚本的语义将一个脚本编译成多个map-reduce作业。粗略地说,join是MR作业。组是MR作业。订单为2个MR作业(一个用于采样分布)。还有一些其他运算符可以生成MR边界。

票数 1
EN

Stack Overflow用户

发布于 2012-07-13 05:47:10

您需要分享您的猪脚本,以便任何人都能有信心地给出答案,但很可能您的脚本足够复杂,执行所有阶段需要6个map reduce作业才能完成

您可以看到,执行的第二个作业确实运行了20个映射器(1.22 20 / 64MB = 19.52,这将需要20个映射器):

普通用户PigLatin:Analysis.pig 100.00% 20 20 100.00% 1 NA job_201207121202_0002

除此之外,谁知道你还在做什么--你是否用不同的输入文件多次提交相同的脚本?

票数 0
EN

Stack Overflow用户

发布于 2015-04-28 03:41:23

Pig是用来链接MR jobs的薄薄的一层。

对于MR作业,“块大小”(从技术上讲是块大小)决定了映射器的数量,但对于猪,MR是基本单位,而不是块大小。

根据您正在对数据执行的ETL类型,pig会将其映射到单个/链式多个MR作业。

例如: A= LOAD '/input‘using PigStorage('|') as (a:chararray) Store A into '/output’;这个小猪脚本只生成Map only job,甚至没有使用reducers。

一个使用groupby的脚本,然后是一个JOIN,将产生2个MR作业。

PIG支持的每个操作都可以映射到MR:

  1. Join :1 MR
  2. GroupBy :1 MR
  3. 筛选器:可以在映射器或减速器阶段
  4. 中完成加载:映射器
  5. 存储:映射器或减速器
  6. Foreach :映射器或减速器
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11460985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档