Hbase副本数与hdfs副本数

Hbase副本数与hdfs副本数,第1张

hbase的副本与hdfs的副本之间没有任何关系。

hbase的副本是对历史数据的备份,是新旧数据,而非相同数据的copy;hdfs的副本是同一数据的copy。

hbase的数据文件存放在hdfs上,但是在hdfs上具体如何存储对hbase是透明的。hbase的hfile

文件是存储在hdfs的普通文件,这个文件同hdfs上的其他文件一样,会自动备份成多份,并由namenode管理,而hbase只是通过namenode去访问hfile,具体访问的文件位置对hbase是透明的。

所以你的问题的答案是:只跟hdfs的副本数有关,跟hbase的副本数无关。即3

因为DataNode和RegionServer通常会部署在相同的机器上,所以会产生Locality这样的概念。

HBase的Locality是通过HDFS的Block复制实现的。在复制Block时,HBase是这样选择副本的位置的:

就是这样,在flush或compact后,HBase的Region实现了Locality。

当一个RegionServer处在failover的情况下(rebalance或重启)时,可能会分配到一些没有本地StoreFiles的Region(因为此时没有可用的本地副本)。然而,有新数据再写入这些Region的时候,或者是对表进行compact的时候,StoreFiles将会被重写,这些Region也会再次变成RegionServer的“local”Region。

有一个相关的指标“data locality”,即Region保存在本地的StoreFile的百分比。这个指标影响了major compact的执行。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/7883330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存