gpt4 book ai didi

hadoop - oozie 中的 org.apache.hadoop.mapred.lib.MultipleOutputs.addNamedOutput()

转载 作者:可可西里 更新时间:2023-11-01 15:23:54 25 4
gpt4 key购买 nike

我正在尝试使用 MultipleOutputs 来更改 reducer 中的输出文件名。我正在使用 oozie 工作流来运行 mapreduce 作业。

我找不到在 oozie 工作流中添加以下属性的方法 -

MultipleOutputs.addNamedOutput(job, "text", TextOutputFormat.class, Text.class, Text.class);

因为它是 oozie mapreduce 操作,所以我没有驱动程序类放在上面的代码。

最佳答案

答案就在方法的源代码中。来自hadoop core 1.2.1 jar

/*     */   public static void addNamedOutput(Job job, String namedOutput, Class<? extends OutputFormat> outputFormatClass, Class<?> keyClass, Class<?> valueClass)
/* */ {
/* 248 */ checkNamedOutputName(job, namedOutput, true);
/* 249 */ Configuration conf = job.getConfiguration();
/* 250 */ conf.set("mapreduce.multipleoutputs", conf.get("mapreduce.multipleoutputs", "") + " " + namedOutput);
/* */
/* 252 */ conf.setClass("mapreduce.multipleoutputs.namedOutput." + namedOutput + ".format", outputFormatClass, OutputFormat.class);
/* */
/* 254 */ conf.setClass("mapreduce.multipleoutputs.namedOutput." + namedOutput + ".key", keyClass, Object.class);
/* 255 */ conf.setClass("mapreduce.multipleoutputs.namedOutput." + namedOutput + ".value", valueClass, Object.class);
/* */ }

因此,它指向再次设置 "mapreduce.multipleoutputs",使用空格分隔 namedOutput 并使用以下变量设置格式、键和值类。

"mapreduce.multipleoutputs.namedOutput." + namedOutput + ".format"
"mapreduce.multipleoutputs.namedOutput." + namedOutput + ".key"
"mapreduce.multipleoutputs.namedOutput." + namedOutput + ".value"

希望对您有所帮助。

关于hadoop - oozie 中的 org.apache.hadoop.mapred.lib.MultipleOutputs.addNamedOutput(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49858219/

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