当hadoop集群中加上权限管理后,即使是linux的root用户也不能拥有最高权限了,因为hdfs的管理员是hdfs,那么问题来了,怎么在命令行调用hdfs的命令呢?
开启检查 HDFS 权限
dfs.permissions
设置为true
创建目录
su hdfs -c "hadoop fs -mkdir /spark-log"
分配权限
su hdfs -l -c "hadoop fs -chown -R root:root /spark-log"
su hdfs -l -c "hadoop fs -ls /"
说明:
假设用户名为username,需要运行command程序,命令如下:
su username -l -c "comman"
其中“-l”表示以登录方式执行,这就意味着username的环境变量会被初始化,这在很多情况下是必须的。