手记

org.apache.hadoop.security.AccessControlException: Permission denied

今天通过java api写hdfs文件,出现如题的异常。
原因很明显,就是该用户没有相应目录的权限。
hdp 就是相应目录的owner
解决办法:添加             System.setProperty("HADOOP_USER_NAME", "hdp");

            System.setProperty("HADOOP_USER_NAME", "hdp");
            FSDataOutputStream os = hdfs.create(new Path(newFile));
            XMLWriter writer = new XMLWriter(os, format);            //调用write方法将doc文档写到指定路径
            writer.write(doc);
            writer.close();
            os.close();
            hdfs.close();

这个其实是一个漏洞,如果用户使用root或者其他目录的用户名,就可以对相应的目录进行任何操作,所以还是很危险的。



作者:pcqlegend
链接:https://www.jianshu.com/p/8f0c0f2e872b


0人推荐
随时随地看视频
慕课网APP