从我读过的各种博客中,我理解HDFS是计算机中本地文件系统上存在的另一层.
我也安装了hadoop,但我无法理解本地文件系统上hdfs层的存在.
这是我的问题..
考虑我在伪分布式模式下安装hadoop.在安装过程中引擎盖下会发生什么?我在配置文件中添加了一个tmp.dir参数.当它尝试访问datanode时,是namenode守护程序与之对话的单个文件夹吗?
好的..我试一试.当你配置Hadoop时,它会在本地FS上放置一个虚拟FS,即HDFS.HDFS以复制的方式将数据存储为块(类似于本地FS,但与之相比要大得多).但是HDFS目录树或文件系统命名空间与本地FS的命名空间相同.当您开始将数据写入HDFS时,它最终只能写入本地FS,但您无法直接在那里看到它.
临时目录实际上有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-辅助名称节点存储其检查点的目录,默认值为,${hadoop.tmp.dir}/dfs/namesecondary
并且可以由其明确指定fs.checkpoint.dir
.
因此,最好使用一些适当的专用位置作为这些属性的值,以实现更清洁的设置.
当需要访问特定数据块时,将搜索存储在dfs.name.dir目录中的元数据,并将该块在特定datanode上的位置返回给客户端(位于dfs.data.dir目录中的某个位置)当地FS).然后客户端直接从那里读取数据(同样适用于写入).
这里需要注意的一点是HDFS不是物理FS.它是一个在本地FS上面的虚拟抽象,不能像本地FS一样浏览.您需要使用HDFS shell或HDFS webUI或可用的API来执行此操作.
HTH
归档时间: |
|
查看次数: |
6232 次 |
最近记录: |