【问题标题】:How To Pass CommandLine Argument Using MapReduce Native in Pig如何在 Pig 中使用 MapReduce Native 传递命令行参数
【发布时间】:2015-09-14 11:44:04
【问题描述】:

我正在使用 NaativeMapreduce (https://wiki.apache.org/pig/NativeMapReduce) 从 Apache Pig 调用 Mapreduce 作业

我的问题是如何像在命令行中那样传递参数。

例如:如果我有一个 Mapreduce 类,我从命令行调用它的驱动程序并传递给它一些在其作业配置对象中设置的参数,例如

java MRDriver argument1_value

在 MRDriver 中

public static void main(String[] args) {
   JobConf jobConf = ...
   jobconf.set("argument1",arg[0]);
   .....

 }

当我从 Pig 调用 Mapreduce 时,我想做同样的事情

例如:

  A = load 'WordcountInput.txt';
  B = MAPREDUCE wordcount.jar Store A into 'inputDir' Load 'outputDir' as (word:chararray, count: int) `org.myorg.WordCount inputDir outputDir`;

如何使用 Pig 的 Native Mapreduce 传递要在作业配置中设置的参数。

如果对我的问题有更多澄清,请询问我。

在此先感谢 :) 干杯!!!

【问题讨论】:

    标签: hadoop mapreduce apache-pig


    【解决方案1】:

    我得到了答案,在社区中分享,以便其他人也可以参考。

    在下面的代码中

    X = ... ;
    Y = MAPREDUCE 'mymr.jar' [('other.jar', ...)] STORE X INTO 'inputLocation' USING storeFunc LOAD 'outputLocation' USING loadFunc AS schema [`params, ... `];
    

    我们可以在上面的“[params, ...]”部分传递参数

    例如:

    Y = MAPREDUCE 'mymr.jar' [('other.jar', ...)] STORE X INTO 'inputLocation' USING storeFunc LOAD 'outputLocation' USING loadFunc AS schema inputpath outpath argument1 argument 2;
    

    这里我们传递 3 个参数 - inputpath、outpath 和 argument1

    默认情况下,它从输入路径中选择输入并将输出转储到输出路径中

    【讨论】:

      猜你喜欢
      • 2011-05-09
      • 2016-02-22
      • 2011-08-22
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多