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