我正在使用 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 的原生 Mapreduce 传递要在作业配置文件中设置的参数。
如果对我的问题有更多的澄清,请问我。
提前致谢:) 干杯!!!
最佳答案
我得到了答案,在社区中分享它,以便其他人也可以引用。
在下面的代码中
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
默认情况下,它从输入路径中选择输入并将输出转储到输出路径中
关于hadoop - 如何在 Pig 中使用 MapReduce Native 传递命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32563973/