问题描述
使用 -get 命令从 hdfs 中拷出文件时,提示权限不够,如下:
hadoop@localhost:/usr/local/hadoop$ hadoop fs -get /input/LICENSE.txt /home/daniel/tmp/
# get: /home/daniel/tmp/LICENSE.txt._COPYING_ (权限不够)
问题分析
可能出现问题的原因有三方面:
- hdfs 中的文件或文件夹 没有读取权限;
- hdfs 的配置中未允许拷出文件;
- 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