hadoop-2.7.2中缺少/用户目录

时间:2017-01-03 04:28:47

标签: hadoop2

我对hadoop有点新意。我最近在ubuntu 14.04操作系统上安装了一个稳定版本的Apache Hadoop 2.7.2。

我正在尝试执行一些基本的Hadoop命令,例如关注

hadoop version

该命令为我提供了正确的输出,如下所示。

enter image description here 但是,当我尝试执行hadoop fs -ls时,它会给我错误。

enter image description here

我在stackoverflow上搜索了与此问题相关的上一个问题,例如StackoverflowQuestion。但是,我在hadoop安装中找不到/user目录。你能帮我解决一下这个问题吗?

我的.bashrc文件的内容如下: enter image description here

hdfs-site.xml文件的内容如下: enter image description here

2 个答案:

答案 0 :(得分:1)

首先,命令“hadoop fs -ls”是HDFS文件系统的命令,而不是Linux命令。

其次,输入的命令不完整。正确的语法是“hadoop fs -ls [-d] [-h] [-R]”,其中命令的[-d],[ - h]和[-R]组件是可选的。也就是说,你必须指定“args”组件的路径。该命令的“args”组件需要HDFS路径(例如,用/“替换”args将列出整个树** ON HDFS **从HDFS根目录开始)。您需要使用“hadoop fs -mkdir / user”在根目录下的HDFS上创建一个名为“user”的目录。命令“hadoop fs -ls / user”将起作用并显示一个空的用户目录。

第三,没有办法告诉HDFS使用“args”的值,为它提供一个本地文件系统(Linux)路径的值...这是你正在尝试或理解它的东西。 “args”的任何值都必须解析为HDFS文件系统路径,而不是Linux文件系统路径。

第四,对于Hadoop的新手,明确区分本机主机操作系统文件系统(在本例中为Linux文件系统)和Hadoop文件系统(在本例中为HDFS)非常重要。

答案 1 :(得分:0)

在v2.7.2中执行hadoop命令时需要注意的一点是,hadoop在 Linux操作系统上工作,因此当我们想要访问Hadoop分布式文件系统时,我们会使用某些东西像这个命令; hdfs dfs -ls /代替hadoop fs -ls。

此外,在您的hdfs-site.xml配置中,您似乎错过了添加此属性。

<property>
<name>dfs.datanode.dir</name>
<value>file://path/to/datanode</value>
</property>

请注意你的$ HADOOP_HOME。