我有一個名爲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