我已经安装了hadoop2.6.0,我正在使用它。我正在尝试伪分布式设置,并遵循http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/singlecluster.html#execution 我被困在第五步,即当我运行命令
bin/hdfs dfs -put etc/hadoop input
我得到下面的错误。
15/02/02 00:35:49 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
put: `input': No such file or directory
为什么我会犯这个错误?我该怎么解决?
7条答案
按热度按时间xzv2uavs1#
有两个错误第一个是您平台的本机hadoop库。这是因为您尚未为hadoop版本安装hadoop winutils。有关详细信息,请查看此答案https://stackoverflow.com/a/46382570/6337190 第二个错误是没有这样的文件或目录。这是因为必须正确指定路径。将目录更改为hadoop/bin/并编写命令
制作目录
hdfs dfs-mkdir/输入
将文件放入目录
hdfs dfs-put/path/to/file.txt/input
检查目录中的文件
hdfs dfs-ls/输入
gfttwv5a2#
更改user:owner,如果要将根目录中的任何文件直接写入hdfs
或
然后使用put命令
对我有用
找到12件物品
ocebsuys3#
解决方法:1。在hdfs hdfs dfs-mkdir/input\u file\u name 2中创建目录。将数据复制到hdfs。hadoop fs-put filename.txt/输入\文件\名称/输出\文件\名称
6tr1vspr4#
您得到了错误,因为路径中没有指定这样的目录。请看我对一个类似问题的回答,这个问题解释了hadoop如何解释相对路径。
请确保首先使用以下方法创建目录:
然后尝试重新执行命令
-put
.pbossiut5#
上述问题分为两部分:
它显示的警告是因为你必须使用64位1和32位编译的hadoop本机lib。这是一个警告,所以不会影响您的代码。
第二个错误基本上是因为它无法将文件放入输入文件夹中。您需要使用hadoop mkdir命令在hadoop中创建文件夹:
hadoop fs-mkdir/hadoop输入
或[对于新版本]
hdfs dfs-mkdir/hadoop输入
现在您可以将文件放入文件夹中:
hdfs dfs-put/users/{username}/desktop/file01/hadoopinput
要检查文件是否复制到文件夹中,请使用以下命令:
hdfs dfs-ls/hadoop输入
kmb7vmvb6#
除了ashrith写的内容之外,还可以添加-p,以防目录尚未创建。
希望这能帮助别人。
mm5n2pyu7#
只要把“/”放在输入的前面,因为它是一个目录。
希望这有帮助