如何在Pig中使用MapReduce Native传递CommandLine参数

时间:2015-09-14 11:44:04

标签: hadoop mapreduce apache-pig

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

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

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

  

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`;

如何使用Native Mapreduce of Pig传递要在job conf中设置的参数。

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

提前致谢:) 欢呼声!!!

1 个答案:

答案 0 :(得分: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

默认情况下,它从inputpath中选择输入并在outputpath中转储输出