2013-04-13 44 views
-3

我在我的机器上安装了hadoop(单节点)。我如何与hdfs交互?hdfs在哪里?

我认为使用hadoop fs mkdir创建一个目录将使该目录中的所有内容都位于hdfs中,但我可以使用普通的linux命令交互写入该目录。也许我完全误解了文件系统的工作原理,但我认为它只是追加,只能使用它的api访问。

回答

3

Hadooop有三种类型的安装:

  1. 分布式模式(簇)
  2. 伪分布式模式(单节点)
  3. 本地模式(单节点)

在第一安装了两种模式HDFS。但是在第三种模式下HDFS不存在,但仿真。你可以调用像“$ hadoop fs -ls”这样的命令,但它可以在你的本地文件系统中运行,而不是在hdfs中运行。

此外,HDFS并非全功能文件系统。为了与它进行交互,你应该考虑使用命令:

  • Hadoop的FS -ls
  • Hadoop的FS -mkdir your_directory
  • Hadoop的FS -cat your_file

HDFS无法挂载到您的linux文件系统(至少不需要额外的软件),并支持有限的命令。你也不能用“cp”命令把文件放到hdfs中。您应该使用

Hadoop的FS -put local_file_or_directory

从HDFS文件复制到你的本地文件系统,你应该使用:

Hadoop的FS -GET

1

HDFS是一个在OS文件系统之上的文件系统,每个文件系统运行在它自己的命名空间中。因此,HDFS命名空间在操作系统名称空间中不可见。使用hadoop fs commands与HDFS名称空间进行交互。

元数据(文件夹,每个文件夹中的文件,要阻止映射的文件夹)存储在NameNode的fsImage中。 offline image viewer可用于查看NameNode上的fsImage文件的内容。