我们在HBase中有一个表,其中预分割数为16(创建的区域数为16),我们还将一些数据加载到表中,我们可以看到数据根据我们定义的分割移动到不同的区域.
在这里,我们对该地区的概念几乎没有怀疑.
如果其中一个节点发生故障(如果该节点具有HBase表的某个区域),会发生什么?并且还可以获取/扫描特定于HBase表的该区域的数据
将整个区域复制到其他节点或它将如何工作?
谁可以帮我这个事.
一般来说,HBase将数据存储在Hadoop上,Hadoop会复制群集中的数据(默认情况下有3个副本,但您可以更改它).当/如果RegionServer崩溃,Master会将该服务器处理的区域分配给其他regionServer.
但是,由于HBase不直接将数据写入文件,而是首先在内存中缓冲数据,因此该过程更为复杂.但是它会将任何新数据写入WAL(预写日志),因此当发生崩溃时,它还会在恢复完成之前重放WAL.
另请注意,此处有更多详细信息,例如围绕数据位置,HBase如何确保数据被复制等等.您可以在此处阅读其中的一些内容