Spark/HDFS上传文件错误:Permission denied

您所在的位置:网站首页 spark上传文件到hdfs Spark/HDFS上传文件错误:Permission denied

Spark/HDFS上传文件错误:Permission denied

2024-07-15 00:00| 来源: 网络整理| 查看: 265

问题描述 今天用spark将RDD结果输出到HDFS时,因为CDH集群重新配置的原因,权限没有设置好。导致写文件出bug。 错误情况 org.apache.hadoop.security.AccessControlException: Permission denied: user=xiet, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x 解决方法

1、对非CDH用户,到Namenode上修改hadoop的配置文件:conf/hdfs-core.xml, 找到 dfs.permissions 的配置项 , 将value值改为 false

dfs.permissions false If "true", enable permission checking in HDFS. If "false", permission checking is turned off, but all other behavior is unchanged. Switching from one parameter value to the other does not change the mode, owner or group of files or directories.

修改完之后,要重启下hadoop的服务才能生效。

2、对CDH用户:假设系统有一个文件夹/user/directory,注意,这个文件夹的拥有者不是所谓的“root”。实际上,这个文件夹为“hdfs”所有(755权限,这里将hdfs理解为一个属于supergroup的用户)。  所以,只有hdfs可以对文件夹进行写操作。与Unix/Linux不同,hdfs是超级使用者(superuser),而不是root。  所以,当你想要进行创建文件夹或者上传文件等操作的时候,可以这么做:

sudo -u hdfs hdfs dfs -mkdir /user/intern/test67

这里写图片描述 同理,上传文件:

sudo -u hdfs hdfs dfs -put myfile.txt /user/intern/test67

显然,上面的方法麻烦在于:每当进行一次操作的时候,都需要切换成hdfs用户。这在spark-shell开发程序倒还好,但是对提交作业的时候,显然是很不方便的。

这里,我们可以创建一个文件夹,更改其权限为root(或你的用户名)。所以,你可以向这个文件夹随意的存、改文件了。

sudo -u hdfs hadoop fs -chown root /user/intern/test67

没运行这条命令时: 这里写图片描述

运行这条命令时: 这里写图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3