How apache/hbase works
Apache HBase is a distributed, versioned, column-oriented store modeled after Bigtable and built on Hadoop storage. Its principal workflow is a client issuing table operations against regions hosted by region servers, where stores manage persisted data. The graph also preserves major runtime capabilities visible in the repository tree: cluster placement, replication, backup and restore, access control, and service interfaces. Several connections are dashed because the relevant runtime wiring is not shown in the excerpts; the README establishes HBase’s Hadoop-backed storage model.
Main entry points: Table.java Table client API · master Master services · regionserver Region server · StoreEngine.java Store engine
Components 21
Client access
- Table client API
hbase-client/src/main/java/org/apache/hadoop/hbase/client/Table.java - Region metadata
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionInfo.java - Cell data model
hbase-common/src/main/java/org/apache/hadoop/hbase/Cell.java
Cluster runtime
- Master services
hbase-server/src/main/java/org/apache/hadoop/hbase/master - Region balancing
hbase-balancer/src/main/java/org/apache/hadoop/hbase/master/balancer - Region server
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver - Event execution
hbase-server/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java - Periodic chores
hbase-common/src/main/java/org/apache/hadoop/hbase/ChoreService.java
Data storage
- Store engine
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreEngine.java - Hadoop storage
- Async filesystem output
hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/AsyncFSOutput.java
Data protection
- Replication queues
hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/TableReplicationQueueStorage.java - Queue migration
hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ZKReplicationQueueStorageForMigration.java - Backup and restore
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup - Backup log coordination
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java - Access permissions
hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/PermissionStorage.java
Service interfaces
- REST service
hbase-rest/src/main/java/org/apache/hadoop/hbase/rest - Thrift service
hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift
Other components
- HBase user
- External application
- ZooKeeper
Connections 18
- HBase user → Table client API: issues operations
- Table client API → Region metadata: uses region metadata
- Table client API → Region server: routes operations
- Region server → Store engine: accesses stores
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreEngine.java - Store engine → Hadoop storage: persists data
- Store engine → Async filesystem output: writes asynchronously
- Master services → Region balancing: assigns regions
- Master services → Region server: coordinates cluster
hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/OfflineTableReplicationQueueStorage.java - Region server → Event execution: submits events
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreEngine.java - Periodic chores → Master services: schedules chores
- Replication queues → Table client API: reads and writes tables
hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/TableReplicationQueueStorage.java - Queue migration → ZooKeeper: reads queue state
hbase-replication/src/main/java/org/apache/hadoop/hbase/replication/ZKReplicationQueueStorageForMigration.java - Backup and restore → Hadoop storage: stores backup data
- Backup log coordination → Master services: coordinates log roll
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java - Backup log coordination → ZooKeeper: coordinates procedure
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java - Access permissions → Table client API: reads and writes ACL table
hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/PermissionStorage.java - External application → REST service: calls API
- External application → Thrift service: calls API