hadoop - 如何在 Pig 中使用 MapReduce Native 传递命令行参数

标签 hadoop mapreduce apache-pig

我正在使用 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/

相关文章:

hadoop - 使用 PigLatin 删除重复项并保留最后一个元素

hadoop - Hadoop Map Reduce 中的 TSV 输入

Windows 上的 Hadoop。 YARN 无法以 java.lang.UnsatisfiedLinkError 启动

java - 如何在键为null和setNumReduceTasks(0)的同时在MapReduce程序中为分隔符分配空白空间

mapreduce - 在哪里可以找到 hbase-0.89.20100924+28 的 HBase 级联模块?

hadoop - 如何使用 Pig 按键和值分组

hadoop - 如何从源构建Hadoop而不会出现错误

scala - 将 Spark Dataframe 中的一列转换为多列

hadoop - Hadoop流-输入参数过多

java - 多个元组作为用 Java 编写的 Pig UDF 的输入