8

我对 hadoop 完全陌生,刚刚完成安装,这花了我 2 天时间......我现在正在尝试使用 hadoop dfs 命令,但我就是无法理解,虽然我已经浏览了好几天,但我不能找到我想知道的答案。所有的例子都显示了结果应该是什么,没有解释它的真实结构,所以如果有人能帮助我理解 hadoop hdfs,我会很高兴。

我在 HDFS 上创建了一个目录。

bin/hadoop fs -mkdir input

好的,我将使用 ls 命令检查它。

bin/hadoop fs -ls
Found 1 items
drwxr-xr-x   - hadoop supergroup          0 2012-07-30 11:08 input

好的,没问题,一切看起来都很完美。但是 HDFS 数据实际上存储在哪里?我以为它会存储在我的datanode目录(/home/hadoop/datastore)中,该目录在hadoop.tmp.dir下的core-site.xml中定义,但它不存在..

然后我尝试通过WEB-UI查看,我发现“输入”是在“/user/hadoop/”(/user/hadoop/input)下创建的。

我的问题是

  • (1)datanode目录(hadoop.tmp.dir)是做什么用的,因为它不存储我通过dfs命令处理的所有内容?
  • (2) 使用 dfs 命令创建的所有内容都到 /user/XXX/ ,如何更改它的值?
  • (3) 当我尝试通过普通的 linux 命令 (ls /user/hadoop) 访问时,我什么也看不到。/user/hadoop 在逻辑上是否存在?

如果我的问题很愚蠢,我很抱歉.. 一个新手努力更好地理解 hadoop..

先感谢您。

4

1 回答 1

11

hdfs不是 posix 文件系统,你必须使用 hadoop api 来读取和查看这个文件系统。这就是您在使用 hadoop API 在这里读取文件时必须执行hadoop fs -ls的原因。hdfs中的数据存储在块中,并存储在所有datanode中。关于这个文件系统的元数据存储在 Namenode 上。您在目录“/home/hadoop/datastore”中看到的数据文件是存储在单个数据节点上的块。

我认为您应该在其教程中进一步了解其文件系统。雅虎,YDN 关于 hdfs 的教程

于 2012-07-30T04:06:22.113 回答