【问题标题】:Pig Multi-Query Optimization issuePig 多查询优化问题
【发布时间】:2015-04-01 03:45:22
【问题描述】:

我们遇到了 Pig 的多查询优化器无法按预期工作的问题。

据我了解,下面的脚本应该作为一个 MR 作业运行,但它在我们的集群上作为两个作业运行。我认为默认情况下应该启用多查询优化,我在这里遗漏了什么吗?如果我用“过滤器”语句替换组,那么它可以作为一个单一的 MR 作业。

data = LOAD 'input' AS (a:chararray, b:int, c:int);
A = GROUP data BY b;
B = GROUP data BY c;
STORE A INTO 'output1';
STORE B INTO 'output2';

我正在使用 CDH 打包的 pig 0.1.0 和 Hadoop 2.0.0。

【问题讨论】:

    标签: hadoop apache-pig


    【解决方案1】:

    如果 0.1.0 是您的 pig 安装的真实版本 - 它非常旧。最新版本为 0.11.1。

    关于 0.11.1 文档的性能的页面: http://pig.apache.org/docs/r0.11.1/perf.html

    【讨论】:

      【解决方案2】:

      我不认为多查询优化在这里需要付出努力,多查询优化通常是为了拆分。在您的示例中,有 2 个分组依据,必须引起 2 种随机播放。

      【讨论】:

        【解决方案3】:

        在 Pig 中,每个 GROUP BY 都需要 MR shuffle。 MR 根据密钥对数据进行混洗。单个 MR 作业不能以两种方式(基于两个不同的键)对数据进行混洗。该脚本正在执行两个 GROUP BY 操作,因此将产生两个 MR 作业。所以猪不会做multi-query optimization

        但是,当您将 GROUP BY 替换为 FILTER 时,Pig 会隐式将 FILTER 替换为 SPLIT 以进行多查询优化,这将导致单个 MR 作业。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-31
          相关资源
          最近更新 更多