Hbase是否有自己的复制策略,还是继承自HDFS?

时间:2018-03-12 00:55:35

标签: hadoop hbase hdfs

由于HBase构建在具有容错复制策略的HDFS之上,这是否意味着HBase本身具有容错能力,而HBase中存储的数据将由于潜在的HDFS,总是可以访问?或者HBase是否实现了自己的复制策略(例如区域上的表复制)?

2 个答案:

答案 0 :(得分:2)

是的,您可以在Hbase中创建区域的副本,如上所述here。但请注意,HBase高可用性仅供读取使用。它不适用于写入。如果区域服务器出现故障,那么在将区域分配给新的区域服务器之前,您将无法编写。

要启用只读副本,您需要通过将hbase.region.replica.replication.enabled设置为true来启用异步WAL复制。您还需要在创建时为表启用高可用性,方法是指定REGION_REPLICATION值大于1,如docs中所示:

CREATE 't1', 'f1', {REGION_REPLICATION => 2}

可以找到更多详细信息here

答案 1 :(得分:1)

HBase中的复制概念与HDFS复制不同。两者在不同的背景下是不同的。 HDFS是文件系统,它从数据文件中复制容错和高可用性功能的数据。虽然从数据库系统的角度来看,HBase复制主要围绕容错,高可用性和数据完整性。

当然,HDFS复制功能用于HBase的文件级复制。除此之外,HBase还将其元数据的副本维护到备份节点(默认情况下再次由HDFS复制)。

HBase还有备份进程来监视故障并从故障中恢复。像主要和次要区域服务器。但区域服务器中的数据丢失仅受HDFS复制保护。

因此,Hbase复制主要围绕故障恢复和维护数据完整性作为数据库引擎。它就像任何其他强大的数据库系统,如Oracle