当我使用hadoop fs -mkdir时,我的文件(dir)存储在哪里?

use*_*806 8 hadoop hdfs

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

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

bin/hadoop fs -mkdir input
Run Code Online (Sandbox Code Playgroud)

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

bin/hadoop fs -ls
Found 1 items
drwxr-xr-x   - hadoop supergroup          0 2012-07-30 11:08 input
Run Code Online (Sandbox Code Playgroud)

好的,没问题,一切看起来都很完美..但实际上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更好..

先感谢您.

Ani*_*Jha 11

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

我认为您应该在其教程中探索有关其文件系统的更多信息.关于hdfs的Yahoo,YDN教程