2017-01-03 109 views
0

我对hadoop有点新。我最近在ubuntu 14.04 OS上安装了一个稳定版本的Apache Hadoop 2.7.2。丢失/ hadoop-2.7.2中的用户目录

我试图执行一些基本的Hadoop的命令,比如遵循

hadoop version 

的命令给我正确的输出如下这是正确的。

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

enter image description here

我已搜查与此问题相关的计算器,如StackoverflowQuestion前一个问题。但是,我在我的hadoop安装中找不到/user目录。你能帮我解决这个问题吗?

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

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

+0

Posibilly重复http://stackoverflow.com/questions/28241251/hadoop-fs-ls-results-in-no-such-file-or- directory – BruceWayne

回答

1

所有命令的第一“Hadoop的FS -ls”是一个命令HDFS文件系统而不是Linux命令。

其次,键入的​​命令不完整。正确的语法是“hadoop fs -ls [-d] [-h] [-R]”,其中命令的[-d],[-h]和[-R]组件是可选的。也就是说,你必须为“args”组件指定一个路径。命令的“args”组件需要HDFS路径(例如,将/替换为“args”将从HDFS根目录/开始列出整个树** ON HDFS **)。您需要使用“hadoop fs -mkdir/user”在根目录下的HDFS上创建一个名为“user”的目录。命令“hadoop fs -ls/user”将工作,并将显示一个空的用户目录。第三,没有办法告诉HDFS通过给它提供一个本地文件系统(Linux)路径的值来使用“args”的值......这正是您正在尝试或理解它的原因。任何“args”值都必须解析为HDFS文件系统路径而不是Linux文件系统路径。第四,对于Hadoop的新手来说,在本地主机操作系统文件系统(在本例中为Linux文件系统)和Hadoop文件系统(在本例中为HDFS)之间要有明确的区别是非常重要的。

0

有一点要注意做一个Hadoop命令时在V2.7.2的是,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。