我试图通过命令行设置要使用的减速器的数量。好像我用错语法了。我使用的是hadoop2.5(yarn)mr2。
hadoop jar mrjobs-0.1.jar com.example.Weather -D mapreduce.job.reduces=2 datasets/inputs output
当我添加-d选项时,这个命令不起作用,否则就可以了。感谢您的帮助!谢谢!
xlpyo6sf1#
语法看起来是正确的,我已经测试了2.5纱mr2与以下它的工作:
hadoop jar hadoop-mapreduce-examples.jar wordcount -Dmapreduce.job.reduces=5 input output
最可能的问题是驱动程序类没有实现toolrunner,它与GenericOptions Parser协同工作来解析通用命令行参数。下面是如何在mapreduce驱动程序类中实现toolrunner的示例:
// imports ignored public class ExampleDriver extends Configured implements Tool { public int run(String[] args) throws Exception { if (args.length != 2) { System.err.println("Usage: ExampleDriver <in> <out>"); System.exit(2); } Configuration conf = getConf(); Job job = Job.getInstance(conf); job.setJobName("example driver"); job.setJarByClass(ExampleDriver.class); job.setMapperClass(YourMapper.class); job.setReducerClass(YourReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); int ret = job.waitForCompletion(true) ? 0 : 1; return ret; } public static void main(String[] args) throws Exception { int res = ToolRunner.run(new Configuration(), new ExampleDriver(), args); System.exit(res); } }
1条答案
按热度按时间xlpyo6sf1#
语法看起来是正确的,我已经测试了2.5纱mr2与以下它的工作:
最可能的问题是驱动程序类没有实现toolrunner,它与GenericOptions Parser协同工作来解析通用命令行参数。
下面是如何在mapreduce驱动程序类中实现toolrunner的示例: