gpt4 book ai didi

hadoop - pig 将如何生成工作的DAG

转载 作者:可可西里 更新时间:2023-11-01 16:22:37 24 4
gpt4 key购买 nike

我正在使用 PIG 处理数百万条记录的提要。从 HDFS 读取提要后,我需要执行三个不同的“分组依据”操作,然后合并所有操作的结果。可以说,无论关系联合的模式如何,都可以正常工作。现在我的问题是 PIG 如何生成执行的 DAG,并且所有这三个 group by 操作将并行执行。

最佳答案

pig 的加工步骤如下:

  1. 脚本解析
    • 检查语法和引用的变量是否有效
    • 类型检查
    • 模式推断
    • 检查自定义类 (UDF)(实例化等)

输出:规范的逻辑计划,它是 pig latin 语句和逻辑运算符之间的一对一映射,以 DAG 的形式排列。

  1. 逻辑优化器
    • 逻辑计划通过逻辑优化器传递(例如:投影下推是执行)

  2. body 计划
    • 将优化后的逻辑计划转化为物理计划。 (每个逻辑运算符都有对应的物理等价)

  3. MapReduce 计划及其优化
    • 每个物理运算符都将分配给一个 MapReduce 阶段(Map 任务或 Reduce 任务)。
    • 创建 MR 计划后,将根据操作的性质执行进一步的优化。目标:减少减少阶段的数量

您可以使用 EXPLAIN 检查为您的 PIG 脚本生成的计划

第二个问题:
group by 操作会强制执行一个缩减阶段,您可以为其定义并行度。默认情况下,如果没有指定并行度,reducer 的数量是用这个公式计算:

min(maxReducersNumber, reducers)

地点:
- maxReducersNumber 可以通过属性 pig.exec.reducers.max 设置(默认 999)
- reducers = (totalInputFileSize/bytesPerReducer)
- bytesPerReducer 可以通过属性 pig.exec.reducers.bytes.per.reducer 设置(默认值:1GB)即:对于每 1GB 的输入数据,Pig 将分配一个新的 reducer

关于并行的更多信息可以在这里找到:
- how to use the parallel feature
- select the right level of parallelism
- source code of the reducer estimator

关于hadoop - pig 将如何生成工作的DAG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25883942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com