gpt4 book ai didi

hadoop - Hadoop程序驱动的多种编写方式——选择哪一种?

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

我观察到Hadoop程序的驱动方法有多种写法。

以下方法在Hadoop Tutorial by Yahoo中给出

 public void run(String inputPath, String outputPath) throws Exception {
JobConf conf = new JobConf(WordCount.class);
conf.setJobName("wordcount");

// the keys are words (strings)
conf.setOutputKeyClass(Text.class);
// the values are counts (ints)
conf.setOutputValueClass(IntWritable.class);

conf.setMapperClass(MapClass.class);
conf.setReducerClass(Reduce.class);

FileInputFormat.addInputPath(conf, new Path(inputPath));
FileOutputFormat.setOutputPath(conf, new Path(outputPath));

JobClient.runJob(conf);
}

Oreilly 在 Hadoop The Definitive Guide 2012 一书中给出了这种方法。

public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.err.println("Usage: MaxTemperature <input path> <output path>");
System.exit(-1);
}
Job job = new Job();
job.setJarByClass(MaxTemperature.class);
job.setJobName("Max temperature");
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.setMapperClass(MaxTemperatureMapper.class);
job.setReducerClass(MaxTemperatureReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
System.exit(job.waitForCompletion(true) ? 0 : 1);
}

在尝试 Oreilly 书中给出的程序时,我发现 Job 类的构造函数已被弃用。由于 Oreilly 的书基于 Hadoop 2( yarn ),我很惊讶地看到他们使用了已弃用的类。

想知道大家用的是什么方法?

最佳答案

我使用前一种方法。如果我们继续覆盖 run() 方法,我们可以使用 hadoop jar 选项,如 -D、-libjars、-files 等。所有这些在几乎所有 hadoop 项目中都是非常必要的.不确定我们是否可以通过 main() 方法使用它们。

关于hadoop - Hadoop程序驱动的多种编写方式——选择哪一种?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16184227/

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