HDFS上文件权限操作

使用指定用户和指定权限建文件夹和文件    转载自:https://www.cnblogs.com/zyanrong/p/11995768.html

创建文件时报错:

Caused by: org.apache.hadoop.ipc.RemoteException (org.apache.hadoop.security.AccessControlException): Permission denied: user=administrater, access=WRITE, inode="/test":root:supergroup:drwxr-xr-x

解决办法有多种

1. 通过代码的方式来设置当前用户名为 root,代码里添加如下代码:

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

2. 通过-D参数来设置当前操作的用户名;

在执行代码的时候通过 -D 参数来指定 HADOOP_USER_NAME 为 root:java -DHADOOP_USER_NAME root TestMkDir,这样在执行程序的时候,程序获取到的系统中的变量 HADOOP_USER_NAME 的值就是 root,当前用户 就设为root。

3. 设多级目录,改变对应目录权限

在 /folder目录下创建 /folder1/folder2只需要把 /folder1的目录权限设置为所有人可读,可写,可执行即可:chmod /folder1 777

4. 通过hdfs的命令直接改文件权限

例子:hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ],

hdfs dfs -chown -R Administrator:Administrator /user/  #更改组、用户权限
hdfs dfs -chown -R Administrator /user/wocheck  #更改用户
hdfs dfs -chgrp -R Administrator /use  #更改组权限

posted @ 2020-11-05 11:02  小香猪mm  阅读(4662)  评论(0编辑  收藏  举报