将文件从本地放入hadoop环境
注意:我已经阅读了与此场景相关的stackoverflow的所有早期文章,但没有找到任何有用的内容 我正在学习hadoop,在玩的时候会遇到一些麻烦 1) 连接到hadoop后,当我检查pwd时,它显示/home/hduser。这意味着我在hduser dir中,这也是我在hadoop环境中的用户。当我使用下面的命令创建dir时,就会创建dir将文件从本地放入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
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