hadoop操作HDFS文件权限问题

描述:在window下使用Eclipse进行hadoop的程序编写,然后Run on hadoop 后,出现如下错误:

11/10/28 16:05:53 INFO mapred.JobClient: Running job: job_201110281103_0003
11/10/28 16:05:54 INFO mapred.JobClient: map 0% reduce 0%
11/10/28 16:06:05 INFO mapred.JobClient: Task Id : attempt_201110281103_0003_m_000002_0, Status : FAILED
org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=DrWho, access=WRITE, inode="hadoop":hadoop:supergroup:rwxr-xr-x 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

 

解决方法:

  到服务器上修改hadoop的配置文件:conf/hdfs-core.xml , 找到 dfs.permissions 的配置项 , 将value值改为 false

<property>
<name>dfs.permissions</name>
<value>false</value> 
<description>
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.
</description>
</property>

 

修改完貌似要重启下hadoop的进程才能生效

 

开发环境:win xp sp3 ,   Eclipse 3.3  ,   hadoop-0.20.2    

hadoop服务器部署环境: ubuntu 10.10  ,   hadoop-0.20.2  

小结:  接触Hadoop没多久,不知道这样修改对集群的安全性有啥影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要修改 HDFS 文件的权限,可以使用以下命令: 1. 查看文件或目录的权限信息: ```bash hadoop fs -ls /path/to/file_or_directory ``` 2. 修改文件或目录的权限: ```bash hadoop fs -chmod <MODE> /path/to/file_or_directory ``` 其中,`<MODE>` 可以使用数字或符号两种方式指定,如下所示: - 数字方式:将 3 个数字分别代表文件所有者、文件所属组、其他用户的权限设置为“读、写、执行”的组合,每个权限用 3 位二进制数表示,如 `rwx` 对应二进制数 `111`,表示可读、可写、可执行。 例如,将文件 `/user/hadoop/test.txt` 的权限设置为所有用户都可读取和执行,但只有文件所有者可写入,可以使用以下命令: ```bash hadoop fs -chmod 754 /user/hadoop/test.txt ``` - 符号方式:使用符号 `u`、`g`、`o` 和 `a` 分别表示文件所有者、文件所属组、其他用户和所有用户,`+` 和 `-` 分别表示添加和删除权限,`r`、`w` 和 `x` 分别表示读、写和执行权限。 例如,将文件 `/user/hadoop/test.txt` 的权限设置为所有用户都可读取和执行,但只有文件所有者可写入,可以使用以下命令: ```bash hadoop fs -chmod u+w,go=rx /user/hadoop/test.txt ``` 注意,如果要修改目录的权限,需要添加 `-R` 参数,以递归方式修改目录下的所有文件和子目录的权限。例如,将目录 `/user/hadoop/data` 及其子目录下的所有文件都设置为只读权限,可以使用以下命令: ```bash hadoop fs -chmod -R a-w /user/hadoop/data ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值