从我阅读的各种博客中,我了解到hdfs是存在于计算机本地文件系统之上的另一层。我也安装了hadoop,但是我很难理解本地文件系统上hdfs层的存在。这是我的问题。。假设我正在伪分布式模式下安装hadoop。在安装过程中,发动机罩下会发生什么?我在配置文件中添加了一个tmp.dir参数。是namenode守护进程试图访问datanode时与之对话的单个文件夹??
iyr7buue1#
在伪分布式模式下安装hadoop时,所有hdfs守护进程namdenode、datanode和secondary name node都运行在同一台机器上。您配置的temp dir是数据节点存储数据的位置。因此,当您从hdfs的Angular 来看它时,您的数据仍然存储在块和读入块中,这些块在多个文件系统级块上要大得多(和聚合)。
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公司
${hadoop.tmp.dir}/dfs/name
dfs.name.dir
${hadoop.tmp.dir}/dfs/data
dfs.data.dir
${hadoop.tmp.dir}/dfs/namesecondary
fs.checkpoint.dir
2条答案
按热度按时间iyr7buue1#
在伪分布式模式下安装hadoop时,所有hdfs守护进程namdenode、datanode和secondary name node都运行在同一台机器上。您配置的temp dir是数据节点存储数据的位置。因此,当您从hdfs的Angular 来看它时,您的数据仍然存储在块和读入块中,这些块在多个文件系统级块上要大得多(和聚合)。
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公司