hbase八股整理
Client
- 包含访问hbase的接口,Client维护着一些cache来加快对hbase的访问,比如regione的位置信息.
Zookeeper
Zookeeper在HBase中的作用:
- 保证任何时候,集群中只有一个master
- 存贮所有Region的寻址入口
- 实时监控Region Server的状态,将Region server的上线和下线信息实时通知给Master
HMaster(对比平常的分布式一主多从的分布式框架,hmaster的角色功能负担降低很多)
- 为Region server分配region
- 负责region server的负载均衡
- 发现失效的region server并重新分配其上的region
- HDFS上的垃圾文件回收
- 处理schema更新请求
HRegion Server
HRegion server维护HMaster分配给它的region,处理对这些region的IO请求
HRegion server负责切分在运行过程中变得过大的region
从图中可以看到,Client访问HBase上数据的过程并不需要HMaster参与(寻址访问Zookeeper和HRegion server,数据读写访问HRegione server)
HMaster仅仅维护者table和HRegion的元数据信息,负载很低
在region中的memstore刷写到hfile(hfile和storefile是一个东西,站在hbase的角度看是storefile,站在hdfs的角度看是hile)中时,是把hbase也就是hregion Server作为dfs client 给刷写到位于hdfs系统的datanode上,不是理解的先本地磁盘然后在启进程刷写到datanode(这里如果一个节点上正好都有hregion Server和datanode,也就是这个节点的磁盘上)。
至于生成的很多细小hfile会进行合并成一个大的hilfe(用hdfs的小文件合并机制)
具体可以看这个链接
大批量数据一次导入可以使用bulkload方式,具体可以看以下链接