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