2014-12-04 180 views
0

我有一个名为WordCountMain.jar的jar。我想在多模式集群中使用hadoop命令运行此jar。Mapreduce队列设置

但我的用户ID被标记为排队名称为“欧米茄”。所以如果我使用下面的命令运行上面的jar,那么我得到一个错误,表明我的id没有submit_job访问权限。在多模集群

hadoop jar WordCountMain.jar /user/cloudera/inputs/words.txt /user/cloudera/output 

所以上面的命令没有工作,但它在单节点集群CDH3工作

我如何包括队列名,而在运行上面的jar?

Configuration conf = new Configuration(); 

Job job = new Job(conf,"word count"); 
job.getConfiguration().set("mapreduce.job.queuename","omega"); 

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工作就是让在默认队列提交..有人可以帮助我在此

ERROR ipc.RPC: FailoverProxy: Failing this Call: submitJob for error(RemoteException):  org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException: User mytra cannot perform operation SUBMIT_JOB on queue default 

回答

0

在你的驱动程序类尝试可能的解决方案

  • 解决方法1:configuration.set("mapred.job.queue.name", "omega");

  • 解决方案2:

    String queueName= "omega"; 
    job.getConfiguration().set("mapreduce.job.queuename", queueName);