下面是单节点集群的例子。在执行第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
别介意警告,我已经研究过了,它似乎没有任何实际的负面影响。
我已经考虑过这个问题了,但是没有用。似乎该指令是错误的:在执行的第1步中格式化文件系统,因此没有输入文件夹。而且,它应该写为 /input
而不是 input
. 这件事我说得对吗?当我使用 /input
(使用创建文件夹后) bin/hdfs dfs -mkdir /input
),我在一个异常之后得到一个巨大的堆栈跟踪(请看这里,它太长了,不能放在这里)。
为什么会这样,我如何解决这个问题?
2条答案
按热度按时间t5zmwmid1#
找到了凶手-在第4步,我得走了
bin/hdfs dfs -mkdir /user/<username>
. 我想我可以使用任何我喜欢的用户名,但事实证明,在操作系统中输入当前正在运行的用户的用户名将使一切正常工作。不知道为什么这很重要。。。ufj5ltwl2#
此命令将尝试将
etc/hadoop
本地文件系统的文件或目录/user/<username>/input
hdfs目录。其中,该用户名通常是作为其运行命令的用户的名称。使用whoami
去弄清楚。如果没有创建该用户目录和随后的输入目录,您将看到该错误。
但是,您的长stacktrace清楚地表明您有0个datanodes正在运行,因此错误似乎不是在启动hdfs