Win下Eclipse提交hadoop程序出错Permission denied

Win下Eclipse提交hadoop程序出错:org.apache.hadoop.security.AccessControlException: Permission denied: user=DrWho, access=EXUTOR

org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=DrWho,access=WRITE, inode="hadoop":hadoop:supergroup:rwxrwx---

解决方法:

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

<property>
<name>dfs.permissions.enabled</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的进程才能生

 

//补充:

因为Eclipse使用hadoop插件提交作业时,会默认以 DrWho 身份去将作业写入hdfs文件系统中,对应的也就是 HDFS 上的/user/xxx , 我的为/user/hadoop ,   由于 DrWho 用户对hadoop目录并没有写入权限,所以导致异常的发生。他提供的解决方法为:放开 hadoop 目录的权限 , 命令如下 :$ hadoop fs -chmod 777 /user/hadoop  

从插件运行写的程序会报错误,没有文件写权限,Permission denied: user=DrWho, access=WRITE

 

BearWu 寫:另外我後來嘗試用java寫入hdfs的檔案 但會有錯誤的樣子
錯誤訊息為:Exception in thread "main" org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=DrWho, access=WRITE, inode="idsl":idsl:Supergroup:rwxr-xr-x


引言回覆:org.apache.hadoop.security.AccessControlException: Permission denied: user=DrWho, access=WRITE, inode="idsl":idsl:Supergroup:rwxr-xr-x



解法一:使用 chmod 指令把權限加大

代碼:$ hadoop fs -chmod 777 /user/idsl



解法二:重新編譯 Eclipse Plugin 讓它用 idsl 身分丟 Job 

更改Advance parameters 中的 hadoop.job.ugi, 默认是 DrWho,Tardis, 改成:root,Tardis。

查考:http://www.tech126.com/eclipse-hadoop/




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值