DataNode

DataNode工作机制

一个数据块在DataNode上以文字形式存储在磁盘上,包括一下两个文件。

1.DataNode启动后告诉NameNode本机的块信息(块是否完好),并周期性(默认6个小时)上报所有块消息(块是否完好)。

如DataNode1中Block1的数据长度、校验和、时间戳,Block3的数据长度、校验和、时间戳

DN先扫描自己节点块信息列表,默认6小时扫描一次,扫描自己的块是否有损害。

<property>
<name>dfs.datanode.directoryscan.interval</name> --数据节点自查时间间隔
<value>21600s</value>
<description>Interval in seconds for Datanode to scan data
directories and reconcile the difference between blocks in memory and on
the disk.
Support multiple time unit suffix(case insensitive), as described
in dfs.heartbeat.interval.
</description>
</property>

DN再向NN汇报当前解读的信息,时间间隔默认6小时。

<property>
<name>dfs.blockreport.intervalMsec</name> --块信息报告的时间间隔ms
<value>21600000</value>
<description>Determines block reporting interval in
milliseconds.</description>
</property>

2.心跳每3s一次,DataNode->NameNode我还活着,心跳返回结果带有NameNode->DataNode的命令。

3.超过10分钟+30s没有收到心跳的话,则认为该节点不可用。就认为该节点挂了,不会再向其传输信息。

数据完整性

DataNode 节点保证数据完整性的方法。

1.当 DataNode 读取 Block 的时候,它会计算 CheckSum。

2.如果计算后的 CheckSum,与 Block 创建时值不一样,说明 Block 已经损坏。

3.Client 读取其他 DataNode 上的 Block。

4.常见的校验算法 crc(32),md5(128),sha1(160)

5.DataNode 在其文件创建后周期验证 CheckSum。

DataNode掉线时限参数设置

注意

hdfs-site.xml 配置文件中的 heartbeat.recheck.interval 的单位为毫秒,dfs.heartbeat.interval 的单位为秒。

<property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>300000</value>
</property> <property>
<name>dfs.heartbeat.interval</name>
<value>3</value>
</property>

HDFS06 DataNode的更多相关文章

  1. HDFS DataNode 设计实现解析

    前文分析了 NameNode,本文进一步解析 DataNode 的设计和实现要点. 文件存储 DataNode 正如其名是负责存储文件数据的节点.HDFS 中文件的存储方式是将文件按块(block)切 ...

  2. 手动处理datanode磁盘间使用不均的问题

    http://wiki.apache.org/hadoop/FAQ#On_an_individual_data_node.2C_how_do_you_balance_the_blocks_on_the ...

  3. Hadoop集群datanode磁盘不均衡的解决方案

    一.引言: Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点,节点与节点之间磁盘大小不一样等等.当hdfs出现不平衡状况的时候,将引发很多问题,比 ...

  4. hadoop 完全分布式 下 datanode无法启动解决方法

    问题描述: 在集群模式下更改节点后,启动集群发现 datanode一直启动不起来. 我集群配置:有5个节点,分别为master slave1-5 . 在master以Hadoop用户执行:start- ...

  5. 格式化namenode,造成无法启动datanode

    一个常见的问题:格式化namenode,造成无法启动datanode的问题.     问题描述:   无法启动datanode,查看日志,datanote尝试n次启动无效后,会出现这个语句 INFO ...

  6. 检查Chunksum与Chunk Data之间的缓冲区发送到DataNode节点

    我们会看到左边"iOS Apps"下面有四个选项:"Certificates"."Identifiers"."Devices&qu ...

  7. 解决hadoop启动后datanode无法启动问题

    hadoop部署完成后datanode无法启动问题解决 1.检查是否有遗留的hadoop进程还在运行,如果有的话,先stop-all.sh或kill杀掉: 2.在master节点上,删除/tmp/ha ...

  8. Hadoop2.6 datanode配置在线更新

    datanode 的配置可以在线更新了,http://blog.cloudera.com/blog/2015/05/new-in-cdh-5-4-how-swapping-of-hdfs-datano ...

  9. NameNode & DataNode

    NameNode类位于org.apache.hadoop.hdfs.server.namenode包下. NameNode serves as both directory namespace man ...

随机推荐

  1. 转帖:新版vivado2019.2新增增量综合功能

    从 Vivado 2019.1 版本开始,Vivado 综合引擎就已经可以支持增量流程了.这使用户能够在设计变化较小时减少总的综合运行时间. Vivado IDE 和 Tcl 命令批处理模式都可以启用 ...

  2. undefined reference to `recvIpcMsg(int, ipc_msg*)'——#ifdef __cplusplus extern "C" { #endif

    最近在弄一个进程间通信,原始测试demon用c语言写的,经过测试ok,然后把接口封装起来了一个send,一个recv. 使用的时候send端是在一个c语言写的http服务端使用,编译ok没有报错,但是 ...

  3. 访问所有HTTPS网站显示连接不安全 (火狐浏览器)

    当 Firefox 连接到一个安全的网站时(网址最开始为"https://"),它必须确认该网站出具的证书有效且使用足够高的加密强度.如果证书无法通过验证,或加密强度过低,Fire ...

  4. nodejs:使用puppeteer在服务器中构建一个获取电影电视剧剧集的接口

    首先我们看下数据来源: 来源于这个网站:https://z1.m1907.cn/ 可以说这个网站上能找到很多你想看的很多电影或电视剧,最重要的是很多电影电视剧在别的网站是收费的,但是在这里看是免费的, ...

  5. swagger3.0(springboot)消除basic-error-controller

    1.新建springboot项目,可以通过https://start.spring.io/快速生成springboot项目. 2.引入jar依赖: <dependency> <gro ...

  6. Linux安装部署Zabbix

    Zabbix 是一个企业级的分布式开源监控方案,能够监控各种网络参数以及服务器健康性和完整性的软件.Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警.这样可以快速反馈服务器的问 ...

  7. Centos 系统常用编译环境

    centos编译环境配置 yum install -y autoconf make automake gcc gcc-c++

  8. Swarm+Docker+Portainer(集群,图形化)

    参考文章 https://blog.csdn.net/u011781521/article/details/80469804 https://blog.csdn.net/u011781521/arti ...

  9. mininet-2.2.2-170321-ubuntu-14.04.4-server-amd64的使用

    1.使用Vmware打开下载好的mininet-2.2.2-170321-ubuntu-14.04.4-server-amd64 2.登录账号密码都为mininet 3.用命令行生成拓扑,并测试连通性 ...

  10. css 马赛克悬停效果

    css 马赛克悬停效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset=