将文件从本地放入hadoop环境

将文件从本地放入hadoop环境,hadoop,Hadoop,注意:我已经阅读了与此场景相关的stackoverflow的所有早期文章,但没有找到任何有用的内容 我正在学习hadoop,在玩的时候会遇到一些麻烦 1) 连接到hadoop后,当我检查pwd时,它显示/home/hduser。这意味着我在hduser dir中,这也是我在hadoop环境中的用户。当我使用下面的命令创建dir时,就会创建dir hadoop fs -mkdir /user/ 我的问题是,为什么我不能从终端上看到path/home/hduser下的dir(user)而不是on

注意:我已经阅读了与此场景相关的stackoverflow的所有早期文章,但没有找到任何有用的内容

我正在学习hadoop,在玩的时候会遇到一些麻烦

1) 连接到hadoop后,当我检查pwd时,它显示/home/hduser。这意味着我在hduser dir中,这也是我在hadoop环境中的用户。当我使用下面的命令创建dir时,就会创建dir

hadoop fs -mkdir /user/
我的问题是,为什么我不能从终端上看到path/home/hduser下的dir(user)而不是on

2) 在我的根目录下存在两个,一个是Jon,第二个是hduser。 我在用户Jon的位置/home/Jon创建了一个文件,我想把这个文件放到/user目录下的hduser中。 当我把他的文件用下面的命令

hadoop fs -put /home/Jon/test.txt /user
得到这样一个错误

17/06/04 21:33:26 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
put: `/home/Jon/test.txt': No such file or directory
Jon ALL(ALL:ALL) ALL
hduser ALL(ALL:ALL) ALL
注意:我也在visudo文件中从root用户处授予了如下权限

17/06/04 21:33:26 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
put: `/home/Jon/test.txt': No such file or directory
Jon ALL(ALL:ALL) ALL
hduser ALL(ALL:ALL) ALL
但我仍然无法做到从本地用户到hduser的转换。当我在hadoop环境中的dir/home/hduser下创建一个文件时,我就可以很容易地将文件从那里复制到/user dir

有人能帮我穿过这些障碍物吗

我的问题是,为什么我不能从终端上看到path/home/hduser下的dir(user)而不是on

HDFS
linux文件系统
是管理文件和目录的两种不同方式
HDFS
需要
namenode
datanode
处于活动状态才能查看存储在
HDFS
中的文件
Namenode
存储
datanode
中存储的所有数据元数据。它们存储在本地文件系统中,但格式不同,
HDFS
只能读取

/user
不完全是本地路径,而是HDFS(HDFS虚拟文件系统)的路径

得到这样一个错误 17/06/04 21:33:26警告util.NativeCodeLoader:无法为您的平台加载本机hadoop库。。。在适用的情况下使用内置java类 put:`/home/Jon/test.txt”:没有这样的文件或目录

当本地文件系统上不存在文件时,通常会显示上述错误。我自己试过了,没有任何错误。真奇怪,它不适合你

您可以做的是尝试查看该文件是否确实存在。如果是这样,那就试试看

$HADOOP_HOME/bin/hadoop fs -put /home/Jon/test.txt /user
如果仍然不起作用,请尝试更改
HDFS的
/user
的文件权限

hadoop fs -chmod 777 /user

感谢您的回复,现在已经清除了doiubut,我也可以移动文件了。其次,我已经从这个网站在我的系统上安装了haddop,所有的目录结构都是一样的。当namenode和datanodes启动时,请告诉我在哪里可以看到终端上的目录/用户。我同意只能由HDFS读取,但它们必须位于其他格式的某个位置,如二进制。。。!!如果
namenode
datanode
已启动,则可以执行
hadoop fs-ls/user
从终端查看hadoop文件。所有这些都是linux命令,但都使用hadoop