我有一个名为WordCountMain.jar的jar。我想在多模式集群中使用hadoop命令运行此jar。用于运行MapReduce作业的Hadoop命令
但我的用户ID被标记为排队名称为“欧米茄”。所以如果我使用下面的命令运行上面的jar,那么我得到一个错误,表明我的id没有submit_job访问权限。
hadoop jar WordCountMain.jar /user/cloudera/inputs/words.txt /user/cloudera/output
所以上面的命令没有多集群的作品,但它工作在单节点集群CDH3
所以,我的问题是我如何包括队列名,而在运行上面的罐子。
Configuration conf = new Configuration();
Job job = new Job(conf,"word count");
job.setJarByClass(WordCountCombinerMain.class);
Path inputFilePath = new Path(args[0]);
Path outputFilePath = new Path(args[1]);
FileInputFormat.addInputPath(job, inputFilePath);
FileOutputFormat.setOutputPath(job, outputFilePath);
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
job.setMapperClass(CWordCountMapper.class);
job.setCombinerClass(CWordCountCombiner1.class);
job.setReducerClass(CWordCountCombiner1.class);
//job.setReducerClass(CwordCountReducer.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
job.waitForCompletion(true);
job.submit();
请给我一个在驱动程序类中添加队列名称的方法名称。
我想知道如何设置配置类的MapReduce队列名称类名。 – 2014-10-29 08:02:35
我尝试通过使用下面的行设置队列名称,它的工作..但我如何设置队列名称使用新的APIJobConf conf1 = new JobConf(); \t \t \t conf1.setQueueName(“omega”); \t \t Job job = new Job(conf1,“word count”); – 2014-10-29 09:28:45
尝试在下面的代码中设置它: job.getConfiguration()。set(“mapreduce.job.queuename”,“omega”); 或者在执行时,像这样: -Dmapreduce.job.queuename = omega – RajK 2014-10-29 11:53:54