Java HDFS权限被拒绝

Java HDFS权限被拒绝,java,hadoop,mapreduce,permission-denied,Java,Hadoop,Mapreduce,Permission Denied,我正在尝试从java启动MapReduce作业。但是,当我尝试提交作业时,我得到了权限被拒绝异常。我能够从命令行运行hdfs dfs-ls/,没有任何错误。但是它在我的java程序中不起作用 这是我的密码 public static void main(String[] args) { Configuration conf=new Configuration(); conf.set("mapreduce.map.class","org.apache.hadoop.conf.Te

我正在尝试从java启动MapReduce作业。但是,当我尝试提交作业时,我得到了
权限被拒绝
异常。我能够从命令行运行
hdfs dfs-ls/
,没有任何错误。但是它在我的java程序中不起作用

这是我的密码

public static void main(String[] args) {
    Configuration conf=new Configuration();

    conf.set("mapreduce.map.class","org.apache.hadoop.conf.TestMapper");
    conf.set("mapreduce.reduce.class","org.apache.hadoop.conf.TestReducer");

    conf.set("mapreduce.framework.name","yarn");

    conf.set("hadoop.security.group.mapping","org.apache.hadoop.security.ShellBasedUnixGroupsMapping");

    conf.set("fs.default.name","hdfs://master:9000");

    conf.set("dfs.permission","false");

    conf.set("yarn.nodemanager.aux-services","mapreduce_shuffle");
    conf.set("yarn.resourcemanager.resource-tracker.address","master:8025");
    conf.set("yarn.resourcemanager.scheduler.address","master:8030");
    conf.set("yarn.resourcemanager.address","master:8040");
    conf.set("yarn.nodemanager.localizer.address","master:8060");
    Job job=null;
    try {
        job = Job.getInstance(conf, "Test Map Reduce");

        job.setJarByClass(RunJob.class);

        job.setOutputKeyClass(LongWritable.class);
        job.setOutputValueClass(Text.class);

        job.setInputFormatClass(TextInputFormat.class);
        job.setOutputFormatClass(TextOutputFormat.class);

        TextInputFormat.setInputPaths(job, new Path("/input.txt"));
        TextOutputFormat.setOutputPath(job, new Path("/output"));

        job.submit();

}
但我有以下例外

org.apache.hadoop.security.AccessControlException: Permission denied: user=manthosh, access=EXECUTE, inode="/tmp":hduser:supergroup:drwxrwx---
这个解决方案行不通


我缺少什么?

是dfs.permissions(注意事项),我建议您在conf/*.xml文件中设置这些属性,而不是在代码中设置。检查这些属性在配置文件中是否设置为final。因为如果是这样,你不能从任何应用程序更新它们。