面试题答案
一键面试主要部分及作用
- HMaster
- 作用:HMaster负责管理HBase集群中的元数据,包括表的创建、删除、修改等操作。它还负责Region服务器的负载均衡,当有新的Region服务器加入集群或已有服务器故障时,HMaster会重新分配Region,以确保集群的负载均匀分布。同时,HMaster监控Region服务器的状态,及时发现并处理故障服务器。
- RegionServer
- 作用:RegionServer是实际存储和处理数据的节点。它负责管理分配给自己的Region,处理客户端的读写请求。RegionServer将数据存储在HDFS上,并通过WAL(Write - Ahead Log)保证数据的可靠性。在处理写请求时,先将数据写入WAL,再写入MemStore,当MemStore达到一定阈值后,会将数据Flush到HDFS上形成StoreFile。读请求则从MemStore和StoreFile中获取数据。
- ZooKeeper
- 作用:ZooKeeper在HBase体系结构中扮演着至关重要的角色。它用于维护集群的状态信息,如HMaster的选举,当当前HMaster故障时,ZooKeeper会触发新的HMaster选举。同时,ZooKeeper保存了HBase集群的元数据信息,包括 -ROOT-表和.META.表的位置,客户端通过ZooKeeper获取这些元数据信息,从而定位到要访问的数据所在的RegionServer。此外,ZooKeeper还用于协调RegionServer之间的通信和状态同步。
- HDFS
- 作用:HDFS为HBase提供了底层的数据存储。HBase的数据最终以文件的形式存储在HDFS上,利用HDFS的分布式存储特性,保证了数据的高可靠性和可扩展性。HDFS的多副本机制确保数据在部分节点故障时不会丢失,同时其大规模数据存储能力满足了HBase对海量数据存储的需求。