2013-05-29 128 views
4

从我读过的各种博客中,我了解到HDFS是存在于计算机本地文件系统中的另一层。HDFS vs LFS - Hadoop Dist。文件系统建立在本地文件系统上?

我也装了Hadoop的,但我无法理解在本地文件系统HDFS层的存在。

这里是我的问题..

考虑我在伪分布式模式下安装Hadoop的。在安装过程中发生了什么?我在配置文件中添加了一个tmp.dir参数。当它尝试访问数据节点时,是否是namenode守护进程与之通信的单个文件夹?

回答

6

OK..let我给它一个try..When配置的Hadoop它规定了在本地FS的顶部,这是HDFS虚拟FS。 HDFS以块的形式存储数据(类似于本地FS,但与其相比要大得多)以复制的方式存储。但是HDFS目录树或文件系统名称空间与本地FS相同。当您开始将数据写入HDFS时,它最终只会写入本地FS,但您无法直接在此处看到它。

临时目录实际上起到3个用途:其中的NameNode存储其元数据,以默认值${hadoop.tmp.dir}/dfs/name,并且可以通过dfs.name.dir明确指定

1-目录。如果您指定dfs.name.dir,则namenode metedata将存储在作为此属性值给出的目录中。

2-存储HDFS数据块的目录,默认值为${hadoop.tmp.dir}/dfs/data,可由dfs.data.dir明确指定。如果指定dfs.data.dir,则HDFS数据将存储在作为此属性值给出的目录中。

3-辅助名称节点存储其检查点的目录,默认值为${hadoop.tmp.dir}/dfs/namesecondary,可由fs.checkpoint.dir明确指定。

因此,它总是更好地使用一些适当的专用地址这些属性更清洁的设置值。

当需要访问特定的数据块时,将搜索存储在dfs.name.dir目录中的元数据,并将该块在特定数据节点上的位置返回给客户端(位于dfs.data中的某处)。本地FS上的dir目录)。客户端然后直接从那里读取数据(同样适用于写入)。这里需要注意的

很重要的一点是,HDFS不是物理FS。这是一个虚拟的抽象概念,不能像本地FS那样浏览本地FS。您需要使用HDFS shell或HDFS webUI或可用的API来完成此操作。

HTH

+2

这是一个令人信服的解释。如果HDFS是一个虚拟抽象手段,地图Readuce是在HDFS的顶级作品另一个抽象,不是吗? –

+2

它可以在HDFS上运行,但不仅限于HDFS。MapReduce是一个计算框架,可用于处理不仅存储在HDFS中的数据,而且还可用于处理其他存储中的数据。 – Tariq

0

当您安装在伪分布式模式的Hadoop,所有的HDFS守护进程namdenode,数据节点和在同一台机器上的从属名称节点运行。您配置的临时目录是数据节点存储数据的位置。因此,从HDFS的角度来看,您的数据仍然存储在块中,并且在多个文件系统级别块中更大(聚合)的块中读取。

相关问题