首页 理论教育 数据复制与节点安全保障机制

数据复制与节点安全保障机制

时间:2023-06-30 理论教育 版权反馈
【摘要】:文件的所有block为了容错都会被复制。心跳包的接收表示该Datanode节点正常工作,而Blockreport包括了该Datanode上所有的block组成的列表。当Namenode检测确认某个Datanode的数据块副本的最小数目,那么该Datanode就会被认为是安全的;如果一定百分比的数据块检测确认是安全的,那么Namenode将退出SafeMode状态,接下来它会确定还有哪些数据块的副本没有达到指定数目,并将这些block复制到其他Datanode。

数据复制与节点安全保障机制

HDFS被设计成在一个大集群中可以跨机器可靠地存储海量文件。它将每个文件存储成block序列,除了最后一个block,所有的block都是同样大小。文件的所有block为了容错都会被复制。每个文件的block大小和replication因子都是可配置的。replication因子可以在文件创建时配置,以后也可以改变。HDFS中的文件是write-one,并且严格要求在任何时候只有一个writer。Namenode全权管理block的复制,它周期性地从集群中的每个Datanode接收心跳包和一个Blockreport。心跳包的接收表示该Datanode节点正常工作,而Blockreport包括了该Datanode上所有的block组成的列表。

1.副本的存放

副本的存放是HDFS可靠性和性能的关键。庞大的HDFS实例一般运行在多个机架的计算机形成的集群上,不同机架间的两台机器的通信需要通过交换机,显然通常情况下,同一个机架内的两个节点间的带宽会比不同机架间的两台机器的带宽大。在大多数情况下,replication因子是3,HDFS的存放策略是将一个副本存放在本地机架上的节点上,一个副本放在同一机架上的另一个节点上,最后一个副本放在不同机架上的一个节点上。机架的错误远远比节点的错误少,这个策略不会影响到数据的可靠性和有效性。1/3的副本在一个节点上,另外2/3在一个机架上,其他保存在剩下的机架中,这一策略改进了写的性能。

2.副本的选择(www.xing528.com)

为了降低整体的带宽消耗和读延时,HDFS会尽量让reader读最近的副本。如果在read-er的同一个机架上有一个副本,那么就读该副本。如果一个HDFS集群跨越多个数据中心,那么reader也将首先尝试读本地数据中心的副本。

3.SafeMode

Namenode启动后会进入一个称为SafeMode的特殊状态,处在这个状态的Namenode是不会进行数据块的复制的。Namenode从所有的Datanode接收心跳包和Blockreport。Blockre-port包括了某个Datanode所有的数据块列表。每个block都有指定的最小数目的副本。当Namenode检测确认某个Datanode的数据块副本的最小数目,那么该Datanode就会被认为是安全的;如果一定百分比(这个参数可配置)的数据块检测确认是安全的,那么Namenode将退出SafeMode状态,接下来它会确定还有哪些数据块的副本没有达到指定数目,并将这些block复制到其他Datanode。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈