HDFS Shell命令权限不足问题解决
问题
想必有同学在实战Shell的时候,遇到了: Permission denied: user=root, access=WRITE, inode="/":hadoop:supergroup:drwxr-xr-x 这种类似的问题。
问题的原因就是没有权限,那么为什么呢?
HDFS超级用户
如图所示 HDFS中,也是有权限控制的,其控制逻辑和Linux文件系统的完全一致。
但是不同的是,大家的Superuser不同(超级用户不同)
Linux的超级用户是root
HDFS文件系统的超级用户:是启动namenode的用户(也就是课程的hadoop用户)
所以遇到此问题的同学,请确保你的HDFS操作命令是以:hadoop用户执行的,root用户在HDFS上其实没特权
未格式化前
授权
在HDFS中,可以使用和Linux一样的授权语句,(hadoop fs 以及 hdfs dfs 都是一样的,一个是老版的命令,一个是新的)
即:chown和chmod 修改所属用户和组:
hadoop fs -chown [-R] root:root /xxx
hdfs dfs -chown [-R] root:root /xxx
修改权限:
hadoop fs -chmod [-R] 777 /xxx
hdfs dfs -chmod [-R] 777 /xxx
格式化后报错
如果是root用户启动的,请切换为hadoop用户启动hdfs
如果是用root用户格式化的,请自行搜索,能找到解决的方案。