面试题答案
一键面试关键组件及作用
- WAL(Write-Ahead Log)
- 作用:在 HBase 中,客户端的写操作首先会被记录到 WAL 中。这是一种预写式日志机制,确保数据在写入 MemStore 之前就有持久化的记录。如果节点发生故障,系统可以通过重放 WAL 日志来恢复未持久化到 HFile 中的数据,保证数据的一致性和可靠性,在分布式应用中防止数据丢失。
- Region Server
- 作用:负责管理和维护分配给自己的 Region。它接收客户端的读写请求,将数据写入 MemStore(内存存储区域),当 MemStore 达到一定阈值后,数据会被刷写到 HFile 中。在复制过程中,Region Server 会将 WAL 日志发送到远程集群的相应 Region Server,实现数据的异步复制,保证分布式环境下数据的多副本一致性。
- HLog Splitting
- 作用:HBase 中的 WAL 日志是按 Region Server 维度生成的。随着时间推移和写入量增加,单个 WAL 日志可能变得非常大。HLog Splitting 机制将大的 WAL 日志按照 Region 进行拆分,使得每个 Region 的日志可以独立处理和传输。在分布式复制场景下,这种拆分有助于提高日志传输和应用的效率,确保每个 Region 的数据都能准确且高效地复制到目标集群。
- Replication Source
- 作用:作为数据复制的源端,它监控 WAL 日志的变化。一旦有新的 WAL 日志片段生成,Replication Source 会将这些日志片段发送到相应的 Replication Target,负责启动和管理数据复制的流出过程,在分布式应用中决定哪些数据需要被复制以及何时复制。
- Replication Target
- 作用:作为数据复制的目标端,接收来自 Replication Source 的 WAL 日志片段。然后将这些日志重放,在本地重建相同的数据状态,从而实现与源集群的数据同步。在分布式环境中,确保了不同地理位置或不同集群间的数据一致性,提供数据容灾和高可用能力。