Hadoop学习之HDFS架构(三)

本文详细介绍了HDFS的通信协议,强调其健壮性设计,包括NameNode和DataNode的角色,以及如何处理各种故障,如DataNode故障、网络分裂。HDFS通过心跳机制检测失效节点,并进行数据重新复制以保持冗余。此外,文章讨论了数据完整性、集群重新均衡、元数据管理以及HDFS的访问方式,包括FS Shell、DFSAdmin命令和浏览器接口。尽管NameNode是单点故障,但未来可能会支持快照和更好的故障转移机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在看看HDFS的通信协议,HDFS的所有通信协议是在TCP/IP协议之上的。客户端连接到NameNode上的一个可配置的TCP端口,按照ClientProtocol协议与NameNode回话,DataNode与NameNode按照DataNodeProtocol协议进行会话。远程过程调用(RPC)包装了ClientProtocol和DataNodeProtocol。NameNode从来不初始化任何RPCs,它只响应由DataNode或者客户端发起的RPC请求。

HDFS的健壮性。HDFS的主要目标即使出现故障时也可以保证数据的可靠性。三种常见的故障类型为NameNode故障、DataNode故障和网络分裂(一种在系统的任何两个组之间的所有网络连接同时发生故障后所出现的情况。发生这种情况时,分裂的系统双方都会从对方一侧重新启动应用程序,进而导致重复服务或裂脑。如果一个群集中配置的两个独立系统具有对指定资源(通常是文件系统或卷)的独占访问权限,则会发生裂脑情况。由网络分裂造成的最为严重的问题是它会影响共享磁盘上的数据)。

数据硬盘故障、心跳和重新复制。每个DataNode周期性地向NameNode发送心跳消息,网络分裂会导致一些DataNode与NameNode失去连接,NameNode根据这些DataNode节点缺少了心跳消息检测到这一情况。NameNode将最近没有心跳的DataNode标记为失效的,并不再向这些DataNode发送任何新的IO请求。失效的DataNode上的数据对于HDFS不再可用,DataNode失效可能导致某些块的复制因子降低到它们所指定的值。NameNode不断地跟踪哪些块需要复制并且在必要时开始复制。重新复制的必要性可能因为很多原因而增加:DataNode变为不可用,某个副本变为损坏的,DataNode上的硬

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skyWalker_ONLY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值