首页 > 试题广场 >

Hadoop你也有了解的,那你有了解他的备份机制吧?请问怎么

[问答题]

Hadoop你也有了解的,那你有了解他的备份机制吧?请问怎么做到数据保持一致?

HDFS在存储文件将其切分存储时,会对每个块生成副本,副本数根据集群设置不同而有所改变,在默认情况下是为三个。
以默认情况为例,HDFS的存放策略是将一个副本存放在本地机架的节点上,一个副本放在同一机架的另一个节点上,最后一个副本放在不同机架的节点上。
这种存放策略减少了机架间的数据传输,这就提高了写操作的效率。由于机架的错误远远比节点的错误少,所以这个策略不会影响到数据的可靠性和可用性。于此同时,因为数据块只放在两个(不是三个)不同的机架上,所以此策略减少了读取数据时需要的网络传输总带宽。
总的来说在这种策略下,副本并不是均匀分布在不同的机架上。三分之一的副本在一个节点上,三分之二的副本在一个机架上,其他副本均匀分布在剩下的机架中,这一策略在不损害数据可靠性和读取性能的情况下改进了写的性能。
而数据一致性则是依靠datenode的心跳机制进行保障。
Namenode从所有的 Datanode接收心跳信号和块状态报告。块状态报告包括了某个Datanode所有的数据块列表。每个数据块都有一个指定的最小副本数。当Namenode检测确认某个数据块的副本数目达到这个最小值,那么该数据块就会被认为是副本安全(safely replicated)的;在一定百分比(这个参数可配置)的数据块被Namenode检测确认是安全之后(加上一个额外的30秒等待时间),Namenode将退出安全模式状态。接下来它会确定还有哪些数据块的副本没有达到指定数目,并将这些数据块复制到其他Datanode上。
发表于 2019-08-06 14:36:08 回复(0)