刚接触Hadoop的时候,老师问我咱们上传的数据存放到那里了,我说我不知道,当时很囧。呵呵。
在hdfs-site.xml中
<porperty>
<name>dfs.data.dir</name>
<value>/home/hadoop/data</value>
</porperty>
这行数据就代表了数据块存放地址,现在才明白过来。
在Linux上有四个目录
1.current存放的是当前有效的数据块,
2.detach存的是快照
3.tmp保存的hi一些操作需要的临时数据块
4.storage存的是一些出错信息,版本不对..(二进制文件)
进入current目录后,发现一系列的数据块文件和数据块元数据文件,
同时还有一些子目录,它们的名字是subdir0到subdir63,子目录下也有数据块文件和数据块元数据,这是因为HDFS限定了每个目录存放数据块文件的数量,多了以后会创建子目录来保存。
数据文件名和元数据文件名的例子:
blk_3148782637964391313
blk_3148782637964391313_242812.meta
上面的例子,3148782637964391313是数据块的ID号,242812是数据块的版本号,用于一致性检查
current/VERSION,保存了一些文件系统的元信息
dncp_block_verification.log.curr和dncp_block_verification.log.prev,它记录了一些DataNode对文件系定时统做一致性检查需要的信息。
本文深入解析Hadoop数据存储的实现方式,包括hdfs-site.xml配置中的dfs.data.dir属性,以及数据在Linux系统上的存储目录分类:current、detach、tmp、storage。详细解释了数据块的存放规则和目录结构,包括数据文件名、元数据文件名的命名规律及作用,同时阐述了目录管理策略,如目录数量限制和子目录创建机制。
1843

被折叠的 条评论
为什么被折叠?



