window中远程调用hdfs,报错org.apache.hadoop.security.AccessControlException: Permission denied: user=Daso...

这个是因为,我们访问hdfs得时候,默认是以windows本机得用户去访问,这里我的是Dason,但是在hdfs中,这个用户是没有权限去访问对应得/temp目录得。所以,我们得设置一下访问用户,eclipse中也是如此,IDEA也是。

解决方式:

    这是因为当前用户Dason没有对hdfs的写入权限. 有几种方式解决:

1、在系统的环境变量或java JVM变量里面添加HADOOP_USER_NAME,这个值具体等于多少看自己的情况,以后会运行HADOOP上的Linux的用户名(hadoop,如果是CDH有可能是hdfs)。(修改完重启eclipse,不然可能不生效)

2、将当前系统的帐号修改为hdfs用户(CDH默认为用户名hdfs)

3、使用HDFS的命令行接口修改相应目录的权限,hadoop fs -chmod 777 /user,后面的/user是要上传文件的路径,不同的情况可能不一样,比如要上传的文件路径为hdfs://namenode/user/xxx.doc,则这样的修改可以,如果要上传的文件路径为hdfs://namenode/java/xxx.doc,则要修改的为hadoop fs -chmod 777 /java或者hadoop fs -chmod 777 /,java的那个需要先在HDFS里面建立Java目录,后面的这个是为根目录调整权限。

你可能感兴趣的:(window中远程调用hdfs,报错org.apache.hadoop.security.AccessControlException: Permission denied: user=Daso...)