标签:
第130讲:Hadoop集群管理工具DataBlockScanner 实战详解学习笔记
DataBlockScanner在datanode上运行的block扫描器,定期检测当前datanode节点上所有的block,从而在客户端读到有问题的块前及时检测和修复有问题的块。
它有所有维护的块的列表,通过对块的列表依次的扫描,查看是否有校验问题或错误问题,它还有截流机制。
什么叫截流机制?DataBlockScanner扫描时会消耗大量的磁盘带宽,如果占用磁盘带宽太大,会有性能问题。所以它会只占用一小部分磁盘带宽。
默认隔504小时(3周)扫描一次。可以dfs.datanode.scan.period.hours属性中设置,如果发现损坏的块会报告给namenode进行修复。
如果想查看当前datanode的DataBlockScanner的信息的话,可以访问datanodeIP的50075端口。如worker4:50075/blockScannerReport。结果非常清晰。
hdfs提供两种校验方式:
1.校验和。第一次进行系统计算数据的校验和,在通道传输过程中,如果新生成的校验和不匹配原始的校验和,数据被认为是损坏的。
hdfs是以透明的方式检验所有写入的数据,默认情况下进行设置,读取数据时验证校验和。数据的每一个校验块都会创建单独的校验和,默认校验块大小是512字节,对应校验和是4个字节,datanode节点在存储数据前会验证收到 的数据,如果节点检测错误,客户端会收到校验和错误:checksumexception。
客户端读取datanode上的数据时就会验证校验和,即将校验和跟datanode存储的校验和比较,每一个datanode上都会维护有校验和日志,里面有验证时间,客户端成功验证校验和后告诉datanode节点,随后更新日志。
2.DataBlockScanner,是在datanode上开启后台线程,定期验证存储在当前datanode上的块,防止物理介质损坏出现的数据损失。
是在单独线程中执行,周期性地校验。当dfs.client读取时会通知DataBlockScanner校验结果,DataBlockScanner最大的扫描速度是8MB/s(可设)。最小扫描速度1MB/s。默认扫描周期是3周(504hr)。因为周期较长,扫描所花时间也很长,为了避免扫描过程中datanode节点重启的情况,DataBlockScanner采用日志记录器,持久化保存每一个block上次扫描时间,这样datanode重启后会通过日志恢复每一个block的有效时间。
为节约系统资源,会对block的验证不仅仅依赖于DataBlockScanner的后台线程还会向具体客户端传送block时更新block的扫描时间。因为datanode向客户端传送一个block时,需要校验数据块,这时日志记录器不会马上把block的扫描信息写到日志,因为频繁的磁盘IO会导致性能下降,何时会把当前block的最后扫描时间写入日志呢?这有不同条件,感兴趣可以参考源码。
以上内容是王家林老师DT大数据梦工厂《Hadoop深入浅出实战经典》第130讲的学习笔记。
王家林:Spark、Flink、Docker、Android技术中国区布道师。Spark亚太研究院院长和首席专家,DT大数据梦工厂创始人,Android软硬整合源码级专家,英语发音魔术师,健身狂热爱好者。
微信公众账号:DT_Spark
电话:18610086859
QQ:1740415547
微信号:18610086859
新浪微博:ilovepains
王家林的第一个中国梦:免费为全社会培养100万名优秀的大数据从业人员!
可以通过王家林老师的微信号18610086859发红包捐助,目前已经发布的王家林免费视频全集如下:
1,《大数据不眠夜:Spark内核天机解密(共100讲)》:http://pan.baidu.com/s/1eQsHZAq
2,《Hadoop深入浅出实战经典》 http://pan.baidu.com/s/1mgpfRPu
3,《Spark纯实战公益大讲坛》 http://pan.baidu.com/s/1jGpNGwu
4,《Scala深入浅出实战经典》 http://pan.baidu.com/s/1sjDWG25
5,《Docker公益大讲坛》 http://pan.baidu.com/s/1kTpL8UF
6,《Spark亚太研究院Spark公益大讲堂》 http://pan.baidu.com/s/1i30Ewsd
7,Spark实战高手之路全部六阶段视频:http://edu.51cto.com/pack/view/id-144.html
8,《大数据Spark企业级实战》购买http://item.jd.com/11622851.html
第130讲视频网站地址:
51CTO |
http://edu.51cto.com/lesson/id-78344.html |
第130讲:Hadoop集群管理工具DataBlockScanner 实战详解学习笔记
标签:
原文地址:http://www.cnblogs.com/richard1023/p/4966878.html