我跟随here的单节点群集示例。 直到执行下的第5步,一切正常,但我得到以下错误输出:
Asafs-MBP:hadoop-2.7.2 asafchelouche$ bin/hdfs dfs -put etc/hadoop input
16/05/15 17:04:13 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
不要介意WARN,我已经研究过它,它似乎没有任何实际的负面影响。
我已经咨询了this这样的问题,但无济于事。似乎说明错误:在执行的第1步中,您格式化文件系统,因此没有输入文件夹。此外,它应该写为/input
而不是input
。我对此事是否正确?
当我使用/input
时(在使用bin/hdfs dfs -mkdir /input
创建文件夹之后),我会在异常后得到一个巨大的堆栈跟踪(请参阅here,它太长了,无法放在这里)
为什么会这样,我该如何解决这个问题?
答案 0 :(得分:0)
hdfs dfs -put etc/hadoop input
此命令将尝试将本地文件系统的etc/hadoop
文件或目录放入/user/<username>/input
HDFS目录。该用户名通常是您运行命令的用户名。使用whoami
来计算出来。
如果您没有创建该用户目录和后续输入目录,您将看到该错误。
但是,你的长堆栈跟踪清楚地表明你有0个数据节点正在运行,所以错误似乎没有启动HDFS
答案 1 :(得分:0)
找到罪魁祸首 - 在第4步中,我需要运行bin/hdfs dfs -mkdir /user/<username>
。我以为我可以使用任何用户名,但事实证明,在操作系统中输入当前正在运行的用户的用户名会使一切正常。不知道为什么这很重要......