了解 hbase 如何使用 hdfs

understanding how hbase uses hdfs

我正在尝试了解 hbase 如何使用 hdfs。
所以这是我的理解(如果我错了请纠正我):
我知道 hbase 使用 hdfs 来存储数据并且数据被分成区域,并且每个区域服务器我服务于许多区域,所以我猜一个区域(独占)可能与许多数据节点通信以获取和放置数据,所以如果这是正确的,那么如果该区域服务器发生故障,那么存储在这些数据节点中的数据将无法再访问
提前谢谢你:)

一般来说,一个Regionserver运行在一个datanode上。

由于 HDFS 的工作方式,Regionserver 将在可能的情况下对本地数据节点执行读取和写入操作,然后 HDFS 将确保将数据复制到另外两个随机数据节点上。所以在任何时候,该区域服务器写入的数据都存储在 HDFS 的 3 个节点上。

当一个区域服务器为一个区域服务时,只有它会读取/写入该区域的数据,但是如果区域服务器进程崩溃,HBase 主服务器将select另一个区域服务器为该区域服务。数据将有几分钟不可用,但 HBase 会很快恢复。

如果整个主机出现故障,那么由于 HDFS 确保数据被写入另外两个节点,情况是相同的 - 主节点将 select 一个新的区域服务器打开故障区域并且数据不会迷路了。