如何在本地文件系统上构建hadoop dist.文件系统?

e7arh2l6  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(438)

从我阅读的各种博客中,我了解到hdfs是存在于计算机本地文件系统之上的另一层。
我也安装了hadoop,但是我很难理解本地文件系统上hdfs层的存在。
这是我的问题。。
假设我正在伪分布式模式下安装hadoop。在安装过程中,发动机罩下会发生什么?我在配置文件中添加了一个tmp.dir参数。是namenode守护进程试图访问datanode时与之对话的单个文件夹??

iyr7buue

iyr7buue1#

在伪分布式模式下安装hadoop时,所有hdfs守护进程namdenode、datanode和secondary name node都运行在同一台机器上。您配置的temp dir是数据节点存储数据的位置。因此,当您从hdfs的Angular 来看它时,您的数据仍然存储在块和读入块中,这些块在多个文件系统级块上要大得多(和聚合)。

rkkpypqq

rkkpypqq2#

好的..让我来试试..当你配置hadoop时,它会在你的本地fs上放置一个虚拟fs,也就是hdfs。hdfs以复制的方式将数据存储为块(类似于本地fs,但比本地fs大得多)。但是hdfs目录树或文件系统名称空间与本地fs相同。当您开始将数据写入hdfs时,它最终只会写入本地fs,但您无法在那里直接看到它。
temp目录实际上有3个用途:
1-namenode存储其元数据的目录,默认值为 ${hadoop.tmp.dir}/dfs/name 并且可以由 dfs.name.dir . 如果指定dfs.name.dir,则namenode metedata将存储在作为该属性值给定的目录中。
2-存储hdfs数据块的目录,默认值为 ${hadoop.tmp.dir}/dfs/data 并且可以由 dfs.data.dir . 如果指定dfs.data.dir,则hdfs数据将存储在作为此属性值给定的目录中。
3-secondary namenode存储其检查点的目录,默认值为 ${hadoop.tmp.dir}/dfs/namesecondary 并且可以由 fs.checkpoint.dir .
因此,最好使用一些适当的专用位置作为这些属性的值,以便进行更干净的设置。
当需要访问特定数据块时,将搜索存储在dfs.name.dir目录中的元数据,并将该块在特定datanode上的位置返回给客户端(位于本地fs上dfs.data.dir目录的某个位置)。然后,客户机直接从那里读取数据(这同样适用于写操作)。
这里需要注意的一点是hdfs不是物理fs。它是本地fs之上的一个虚拟抽象,不能像本地fs那样简单地浏览。您需要使用hdfsshell或hdfswebui或可用的api来实现这一点。
hth公司

相关问题