我试图理解hbase如何使用hdfs。以下是我的理解(如果我错了,请纠正我):我知道hbase使用hdfs来存储数据,并且数据被分为多个区域,并且每个区域服务器为我的多个区域服务,因此我猜一个区域(独占)可能与多个数据节点通信以获取和放置数据,因此如果这是正确的,那么如果该区域服务器发生故障,那么存储在这些数据节点中的数据将不再可访问提前感谢:)
5vf7fwbs1#
通常,regionserver在datanode上运行。由于hdfs的工作方式,regionserver将在可能的情况下执行对本地datanode的读写操作,然后hdfs将确保数据复制到另外两个随机datanode上。因此,该regionserver写入的数据始终存储在hdfs中的3个节点上。当regionserver为某个区域提供服务时,只有它会读/写该区域的数据,但是如果regionserver进程崩溃,hbase主机将选择另一个区域来为该区域提供服务。数据将在几分钟内不可用,但hbase将快速恢复。如果整个主机出现故障,那么由于hdfs确保数据被写入其他两个节点,情况是相同的—主服务器将选择一个新的regionserver来打开故障区域,并且数据不会丢失。
1条答案
按热度按时间5vf7fwbs1#
通常,regionserver在datanode上运行。
由于hdfs的工作方式,regionserver将在可能的情况下执行对本地datanode的读写操作,然后hdfs将确保数据复制到另外两个随机datanode上。因此,该regionserver写入的数据始终存储在hdfs中的3个节点上。
当regionserver为某个区域提供服务时,只有它会读/写该区域的数据,但是如果regionserver进程崩溃,hbase主机将选择另一个区域来为该区域提供服务。数据将在几分钟内不可用,但hbase将快速恢复。
如果整个主机出现故障,那么由于hdfs确保数据被写入其他两个节点,情况是相同的—主服务器将选择一个新的regionserver来打开故障区域,并且数据不会丢失。