刚接触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对文件系定时统做一致性检查需要的信息。