标题: Hadoop Distributed File System 简介(3) [打印本页] 作者: look_w 时间: 2018-10-18 17:10 标题: Hadoop Distributed File System 简介(3)
数据存储可靠性HDFS 的一个重要目标是可靠存储数据,即使在 Name node、 Data node 或网络分区中出现故障。
HDFS 克服故障的第一个步骤是探测。HDFS 使用心跳消息来探测 Name node 和 Data node 之间的连通性。
HDFS 心跳有几种情况可能会导致 Name node 和 Data node 之间的连通性丧失。因此,每个 Data node 都向它的 Name node 发送定期心跳消息,这样,如果 Name node 不能接收心跳消息,就表明连通性丧失。 Name node 将不能响应心跳消息的 Data node 标记为 “死 Data node ”,并不再向它们发送请求。存储在一个死节点上的数据不再对那个节点的 HDFS 客户端可用,该节点将被从系统有效地移除。如果一个节点的死亡导致数据块的复制因子降至最小值之下, Name node 将启动附加复制,将复制因子带回正常状态。
展示了发送心跳消息的 HDFS 流程。
图 2. HDFS 心跳流程数据块再平衡HDFS 数据块可能并不总是均衡地跨 Data node 分布,这意味着一个或多个 Data node 的已使用空间可能没有被充分利用。因此,HDFS 支持使用各种模型重新平衡数据块。一种模型可能是:如果一个 Data node 上的空闲空间太少,该模型将把该节点上的数据自动移动到另一个节点。另一种模型可能是:如果某个文件的需求突然增加,该模型将动态创建额外的副本并重新平衡一个集群中的其他数据块。HDFS 还提供 hadoop balance 命令以支持手动平衡任务。
重新平衡的一个常见原因是集群中添加了新的 Data node 。放置新的数据块时, Name node 将考虑各种参数,然后选择接收它们的 Data node 。需要考虑的事项包括: