1、非Hadoop用户不能访问hdfs
- 异常信息
org.apache.hadoop.security.AccessControlException:
Permission denied: user=root, access=WRITE,
inode="temp":hadoop:supergroup:rwxr-xr-x
- 解决方案
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<!-- 修改 hdfs-core.xml 文件-->
如果还是不能够使用
1、首先查看当前$PATH
,是否有hadoop的 bin 和 sbin ,如果没有添加到.bashrc
中$ echo $PATH | tr : '\n' | grep hadoop
2、如果hadoop使用的是非当前用户安装,将安装用户(如hadoop用户安装)的
/home/hadoop
改变权限为 777$ echo chmod 777 /home/hadoop
至此,在当前用户下即可使用hadoop命令,但是
jps
命令不会有任何显示,但是可以提交作业。
2、jps显示没有datanode
- 实际上是data文件夹的权限问题
<property>
<name>dfs.datanode.name.dir</name>
<value>file:/home/hadoop/dfs/data</value>
</property>
<!--hdfs-core.xml 修改对应文件的权限即可-->
- 实际上按照第一种方法,也可以解决这个问题
3、运行程序时:Error creating temp dir in hadoop.tmp.dir /home/hadoop/dfs/temp due to 权限不够
- 改变/home/hadoop/dfs/tmp的权限
chmod 777 /home/hadoop/dfs/tmp