Hbase 核心

一、概括

  • 面向列的分布式数据库
  • 实时随机访问超大规模数据集

二、架构

  1. * HMaster
  2. 1. 管理用户对 Table 的增删改查
  3. 2. 管理 HRegionServer 的负载, 调整 Region 分布
  4. 3. HRegion HStore 里的 StoreFile 超过阀值, 引发 Split 拆分 HRegion 时, 负责重新分配 HRegion
  5. 4. HRegionServer 停机后, 负责失效的 HRegionServer 上的 HRegion 迁移
  6. * HRegionServer
  7. 负责响应用户 I/O 请求, HDFS 文件系统写入数据
  8. - HRegionServer
  9. - HRegion (对应 Table 中的一个 Region)
  10. - HLog
  11. - HStore (对应一个 Column Family)
  12. - MemStore (先写内存, 写满阀值, flush StoreFile 文件中)
  13. - StoreFile (当 StoreFile 文件数量到一定阀值时, 会进行一次 Compact 合并操作, 把多个 StoreFile 合并成一个大的 StoreFile 文件)
  14. - StoreFile (当 StoreFile 大小超过阀值时, 会触发 split 操作, 把当前的 HRegion 分割成 2 个子 HRegion, 让父的 HRegion 下线, HMaster 会分配新的 HRegion HRegionServer 中, 原来的用户流量, 就会分流到 2 HRegion 中)
  15. - StoreFile (存储格式)
  16. - HFile (是 Hadoop 的二进制文件格式)
  17. - HLog File (是 Hadoop Sequence File)
  18. - HStore ...
  19. - HRegion
  20. - HStore
  21. - HStore
  22. - HRegion
  23. - HStore
  24. - HStore
  25. - HStore
  26. 1. HRegion
  27. 一个 HRegionServer 管理一系列的 HRegion 对象
  28. 一个 HRegion 对应 Table 中的一个 Region
  29. HRegion 2 个部分组成 MemStore StoreFile
  30. 2. HStore
  31. 对应一个 Column Famil 用来存储合、合并、拆分数据
  32. * HLog
  33. HRegionServer -> HLog 中的对象
  34. 1. 每次用户写 MemStore 时, 也会写一份数据到 HLog 文件中, HLog 会自动删除旧的文件
  35. 2. HRegionServer 节点故障后, HMaster 会通过 ZooKeeper 感知到
  36. a. HMaster HRegionServer 中的 HLog 进行处理, 将其中不同的 HRegion Log 进行数据拆分, 分别放到 HRegion 对应的目录下, 然后再将失效的 HRegion 重新分配到 HRegionServer
  37. b. HRegion 被分配到新的 HRegionServer 中后, Load Region 的过程中, 发现有 HLog 要处理, 会重新加载 HLog 中的数据到 Region-> MemStore 中, 然后保存到 StoreFile 中, 数据恢复完成

三、详细命令

  1. hbase xxx
  2. Some commands take arguments. Pass no args or -h for usage.
  3. shell Run the HBase shell
  4. hbck Run the hbase 'fsck' tool, hbase hbck 查看故障
  5. snapshot Create a new snapshot of a table
  6. wal Write-ahead-log analyzer
  7. hfile Store file analyzer
  8. zkcli Run the ZooKeeper shell
  9. upgrade Upgrade hbase
  10. master Run an HBase HMaster node
  11. regionserver Run an HBase HRegionServer node
  12. zookeeper Run a Zookeeper server
  13. rest Run an HBase REST server
  14. thrift Run the HBase Thrift server
  15. thrift2 Run the HBase Thrift2 server
  16. clean Run the HBase clean up script
  17. classpath Dump hbase CLASSPATH
  18. mapredcp Dump CLASSPATH entries required by mapreduce
  19. pe Run PerformanceEvaluation
  20. ltt Run LoadTestTool
  21. version Print the version
  22. CLASSNAME Run the class named CLASSNAME