spark集成hive往HDFS中写数据权限不足的解决办法

2021-09-07  本文已影响0人  顺风飘千里

报错信息

Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=ɽ¼äһͷ, access=EXECUTE, inode="/user/hive/warehouse":root:supergroup:drwxr-x---
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkTraverse(FSPermissionChecker.java:266)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:206)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:190)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1752)
    at org.apache.hadoop.hdfs.server.namenode.FSDirStatAndListingOp.getFileInfo(FSDirStatAndListingOp.java:100)

原因

根据错误信息提示:inode="/user/hive/warehouse":hadoop1:supergroup:drwxr-xr-x 知道在windows上运行程序默认的用户是本机的账号,是没有权限往HDFS中的/user/hive/warehouse目录写入文件的

解决方法

方法一:在程序开头添加如下代码,将用户改为root

System.setProperty("HADOOP_USER_NAME","root")

方法二:修改/user/hive/warehouse的读写权限

hdfs dfs -chmod 777  /user/hive/warehouse
上一篇 下一篇

猜你喜欢

热点阅读