问题描述
使用 -get 命令从 hdfs 中拷出文件时,提示权限不够,如下:
hadoop@localhost:/usr/local/hadoop$ hadoop fs -get /input/LICENSE.txt /home/daniel/tmp/
# get: /home/daniel/tmp/LICENSE.txt._COPYING_ (权限不够)
问题分析
可能出现问题的原因有三方面:
1.hdfs 中的文件或文件夹 没有读取权限;
2.hdfs 的配置中未允许拷出文件;
3.linux 文件夹没有写入权限;
解决办法
针对上述问题分析中提到的三种可能,分别解决办法如下:
1.增加hdfs文件夹权限
hadoop fs -chmod 777 /user/hadoop
2.修改hdfs配置文件
# 在 $HADOOP_HOME/etc/hadoop/目录中,找到hdfs-site.xml,添加或更改以下属性:
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
# 将true该为false。
3.增加linux文件夹权限
sudo chmod 777 /home/daniel/tmp