通过猪倾倒中间MR工作数据

时间:2015-09-08 11:52:07

标签: hadoop apache-pig

我对Pig的行为方式有一个查询。

假设我正在编写Pig脚本,如下所示:

A = LOAD some Input;
B = FILTER A BY `some condition 1`;
C = FILTER A BY `some condition 2`;
D = GROUP B BY `some column1` ;
E = GROUP C BY `some column1` ;
store D;
store E;

现在,当Pig实际传递数据时,假设Pig创建2个作业来执行此脚本:

  

工作1:按条件1和条件2过滤

     

作业2:按操作执行分组。

因此作业1的输出数据被作业2用作输入; Pig将作业1的输出数据写入磁盘,然后将该输出数据作为作业2的输入数据加载,或者Pig直接将作业1的输出传递给作业2(可能将中间输出存储在内存/ RAM中,如果它有足够的)作为一些优化技术的一部分?

我的问题是当Pig触发多个作业时,每个作业是否将其MR输出放到磁盘上,然后下一个作业将输出作为输入选择,或者以某种方式将其直接传递给下一个作业而不将其写入磁盘

支持结论的任何有用链接都会有很大的帮助。

先谢谢 干杯:)

1 个答案:

答案 0 :(得分:1)

Pig内部以DAG身份执行作业。始终在作业的MR作业输出中存储到磁盘。因此,要准确回答您的问题,它将从磁盘中选择job1的输出。