注意:我已经阅读了与此场景相关的所有关于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
有人能帮我穿一下这些衣服吗。。。?
1条答案
按热度按时间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':没有这样的文件或目录
当本地文件系统上不存在文件时,通常会显示上述错误。我自己试过了,没有任何错误。真奇怪,它不适合你
你能做的就是看看这个文件是否真的存在。如果有,那就试试
如果仍然无法工作,请尝试更改的文件权限
/user
的HDFS
```hadoop fs -chmod 777 /user