2016-05-15 76 views
0

我正在关注来自here的单节点群集示例。 直到下执行第5步一切工作正常,但后来我碰到下面的错误输出:Hadoop 2.7.2单节点群集示例失败

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 SO问题,但无济于事。看来这个指令是错误的:在步骤1中执行你格式化文件系统,所以没有输入文件夹。此外,它应该写为/input而不是input。我在这件事上纠正了吗? 当我使用/input(在创建文件夹bin/hdfs dfs -mkdir /input之后)后,我得到一个巨大的堆栈跟踪,出现异常(请参阅here,放置时间太长)。

这是为什么,我该如何解决这个问题?

回答

0

找到罪魁祸首 - 在第4步,我需要运行bin/hdfs dfs -mkdir /user/<username>。我认为我可以使用任何用户名,但是事实证明,在操作系统中输入当前运行用户的用户名将会使一切正常工作。不知道为什么这个问题...

0
hdfs dfs -put etc/hadoop input 

此命令将尝试把etc/hadoop文件或目录的本地文件系统进入/user/<username>/input HDFS目录。那个用户名通常是你运行命令的用户的名字。使用whoami来解决这个问题。

如果您未创建该用户目录和后续输入目录,则会看到该错误。

但是,你长的堆栈跟踪明确规定你有0数据节点和运行,所以错误似乎不启动HDFS

+0

没有运行'sbin/start-dfs.sh'启动HDFS的动作? – asafc

+0

这是正确的。您还需要启动YARN以使mapreduce正常工作。有错误消息反复说“有0个datanode(s)运行” –