Hadoop多用户环境下用户执行jar出错

除安装hadoop的用户、root用户之外的所有用户执行 jar 时,均出现如下错误。
Exception in thread "main" java.io.IOException: 权限不够
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(File.java:1879)
at org.apache.hadoop.util.RunJar.main(RunJar.java:115)
这是因为hadoop在执行job时,会将作业jar文件,配置文件和计算所得的输入划分复制到 {mapred.system.dir} 目录下的一个以作业ID号命名的目录中(摘自hadoop权威指南),例如会有如下文件,例如:  
hadoop-default.xml 的参数{mapred.system.dir} 的默认值是{hadoop.tmp.dir}/mapred/system
因此,我们需要修改 {mapred.system.dir}  目录的权限,让其它用户也能写。
我们给出一个正常运行的集群的权限是:
因此,我们也可以将 {mapred.system.dir} 目录权限设置为 733, 即其它用户可以写, 但不能读. 
hadoop fs -chmod 733 /hadoop/tmp/mapred/system

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值