DataNode

DataNode作为HDFS集群中的关键组件,负责存储实际的数据块,并与NameNode保持通信,执行数据块读写和复制等任务。DataNode还通过心跳机制定期向NameNode报告其存储的数据块信息。

    DataNode就是负责存储数据的组件,一个数据块block会在多个DataNode中进行冗余备份,而一个DataNode对于一个块最多只包含一个备份。所以可以简单地认为DataNode上就存储了数据块ID和数据块内容,以及它们的映射关系。

     一个HDFS集群可能包含上千个DataNode节点,这些DataNode定时和NameNode进行通信,接受NameNode的指令,为了减轻NameNode的负担,NameNode上并不永久保存哪个DataNode上有哪些数据块的信息,而是通过DataNode启动时的上报来更新NameNode上的映射表。

    DataNode和NameNode建立连接后,就会不断地和NameNode保持联系,反馈信息中也包含了NameNode对DataNode的一些命令,如删除数据库或者把数据块复制到另一个DataNode。应该注意的是:NameNode不会发起到DataNode的请求,在这个通信过程中,它们严格遵从客户端/服务器架构。

    DataNode也作为服务器接受来自客户端的访问,处理数据块读/写请求。DataNode之间还会相互通信,执行数据块复制任务,同时,在客户端执行写操作的时候,DataNode之间需要相互配合,以保证写操作的一致性。


   当运行任务时,客户端通过NameNode获取元数据信息,和DataNode进行交互以访问整个文件系统。

    DataNode是文件系统Worker中的节点,用来执行具体的任务:存储文件块,被客户端和NameNode调用。同时,它会通过心跳(Heartbeat)定时向NameNode发送所存储的文件块信息。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值