hadoop hdfs数据块探索

Posted 熊猫太郎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop hdfs数据块探索相关的知识,希望对你有一定的参考价值。

1.文件存储的位置

示例查看

./bin/hadoop fsck /data/bb/bb.txt -files -blocks -racks –locations

Image

blk_1076386829_2649976是meta文件名,具体如何找到这个meta文件,可以通过find命令,从图中我们可以看到文件存储在117和229的二台机器上,例如我们登录到117机器上。

首先到dfs.datanode.data.dir的路径(如果忘记啦,可以在$HADOOP_HOME/etc/hadoop/hdfs-site.xml中查看)

我的机器配置如下:

Image[7]

分别在3个目录中执行find语句,示例命令如下:

find /data1/hdfs1/data/current/BP-236683338-10.207.0.217-1403487328282/current -name blk_1076386829_2649976.meta  

最终找到meta文件。截图如下:

Image(1)

这样也就找到了你的文件,可以cat blk_1076386829查看 一下。

单纯的模拟了其中一个数据块损坏的情况,数据块损坏后,在该节点执行directoryscan之前(dfs.datanode.directoryscan.interval决定),都不会发现损坏,在向namenode报告数据块信息之前(dfs.blockreport.intervalMsec决定),都不会恢复数据块,当namenode收到块信息后才会采取恢复措施

真实的情况肯定会更复杂,可以从这个简单的过程中了解开头所说的两个参数。

参数配置

hdfs-site.xml中的两个主要参数配置入下

<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:9001</value></property><property>
  <name>dfs.blockreport.intervalMsec</name>
    <value>600000</value>
      <description>Determines block reporting interval in milliseconds.</description></property><property>
  <name>dfs.datanode.directoryscan.interval</name>
    <value>600</value>    
</property>

都是10分钟

日志详情

2016-06-14 21:48:51,083 INFO org.apache.hadoop.hdfs.server.datanode.DirectoryScanner: BlockPool BP-660628275-192.168.1.100-1464787466998 Total blocks: 1, missing metadata files:1, missing block files:1, missing blocks in memory:0, mismatched blocks:0
2016-06-14 21:48:51,084 WARN org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl: Removed block 1073741825 from memory with missing block file on the disk
2016-06-14 21:49:17,168 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: BlockReport of 1 blocks took 0 msec to generate and 1 msecs for RPC and NN processing
2016-06-14 21:49:17,169 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: sent block report, processed command:org.apache.hadoop.hdfs.server.protocol.FinalizeCommand@8a2db2
2016-06-14 21:49:20,977 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Receiving BP-660628275-192.168.1.100-1464787466998:blk_1073741825_1001 src: /192.168.1.101:53718 dest: /192.168.1.102:50010

2016-06-14 21:49:20,984 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Received BP-660628275-192.168.1.100-1464787466998:blk_1073741825_1001 src: /192.168.1.101:53718 dest: /192.168.1.102:50010 of size 1366

以上是关于hadoop hdfs数据块探索的主要内容,如果未能解决你的问题,请参考以下文章

Java之使用Hadoop探索大数据的世界

Hadoop| HDFS

Hadoop源码学习之HDFS

Hadoop 学习 HDFS

Hadoop架构: HDFS中数据块的状态及其切换过程,GS与BGS

Hadoop分布式存储