将文件从本地放到hadoop环境

wi3ka0sx  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(316)

注意:我已经阅读了与此场景相关的所有关于stackoverflow的文章,但是没有找到任何有用的
我正在学习hadoop,在玩的时候遇到了一些麻烦。
1) 连接到hadoop后,当我检查pwd时,它显示/home/hduser。这意味着我在hduser dir中,这也是我在hadoop环境中的用户。当我使用下面的命令创建dir时,dir被创建。

hadoop fs -mkdir /user/

我的问题是,为什么我不能从终端上看到path/home/hduser下的dir(user)而不是onhttp://localhost:50070/explorer.html#/user?
2) 在我的根目录下有两个存在,一个是jon,另一个是hduser。我在用户jon的location/home/jon中创建了一个文件,我想把这个文件放到hduser的/user目录下。当我把他的文件用下面的命令

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

注意:我在visudo文件的根目录下也有这样的权限

Jon ALL(ALL:ALL) ALL
hduser ALL(ALL:ALL) ALL

但我仍然无法做到这一点,把从本地到hduser。当我在hadoop环境中的dir/home/hduser下创建一个文件时,我可以很容易地将文件从那里复制到/user dir
有人能帮我穿一下这些衣服吗。。。?

bprjcwpo

bprjcwpo1#

我的问题是,为什么我不能从终端上看到path/home/hduser下的dir(user)而不是onhttp://localhost:50070/explorer.html#/user? HDFS 以及 linux file system 是管理文件和目录的两种不同方式。 HDFS 需要 namenode 以及 datanode 以查看存储在中的文件 HDFS . Namenode 存储存储在中的数据的所有元数据 datanode . 它们存储在本地文件系统中,但格式不同 HDFS 我只能读。 /user 不是本地路径,而是hdfs(hdfs虚拟文件系统)的路径。
出现如下错误17/06/04 21:33:26 warn util.nativecodeloader:无法为您的平台加载本机hadoop库。。。在适用的地方使用内置java类put:`/home/jon/test.txt':没有这样的文件或目录
当本地文件系统上不存在文件时,通常会显示上述错误。我自己试过了,没有任何错误。真奇怪,它不适合你
你能做的就是看看这个文件是否真的存在。如果有,那就试试

$HADOOP_HOME/bin/hadoop fs -put /home/Jon/test.txt /user

如果仍然无法工作,请尝试更改的文件权限 /userHDFS ```
hadoop fs -chmod 777 /user

相关问题