HBase - 图1

    1. []
    2. : HBase客户端连接HBase集群进行数据读写的流程
    3. [写流程]
    4. : -> Client 访问 zookeeper, Region中获取表信息 ->
    5. -> 根据namespace、表名和rowkey根据meta表的数据找到写入数据对应的RegionServerID
    6. -> 通过RegionServerID定位到region
    7. [读流程]
    8. : Client 请求访问 zookeeper, 获取meta表信息
    9. -> 通过meta表中的 Rowkey,tableName,TimeStamp 定位到 RegionID
    10. -> 通过这个RegionID查找到相对应的RegionServer
    11. -> 查找到RegionServer中,先查找MemStore(写缓存),如果查不到,再进入BlockCache(读缓存)中查询,如果查不到,再进入StoreFile中查(依据StoreFile的索引查),并把结果放在BlockCache
    12. // HBase客户端进行数据读写不会接触到HMaster, 只会接触到zookeeper集群和和所有的regionserver节点
    1. [RegionServer端口]
    2. : 默认的RegionServer端口是16020
    3. <property>
    4. <name>hbase.regionserver.port</name>
    5. <value>16020</value>
    6. </property>
    7. [客户端 /etc/hosts]
    8. : HBase客户端通过zookeeper获取到regionserver的节点名和端口
    9. // slave1:16020,slave2:16021,slave3:16022
    10. // 会解析本机的/etc/hosts文件, 获取slave1, slave2, slave3的IP地址
    11. 59.69.101.206 slave1
    12. 59.69.101.206 slave2
    13. 59.69.101.206 slave3
    14. <property>
    15. <name>hbase.zookeeper.quorum</name>
    16. <value>59.69.101.206:42181,59.69.101.206:42182,59.69.101.206:42183</value>
    17. </property>
    18. [配置路由器]
    19. : zookeeperregionserver节点配置端口映射
    20. 59.69.101.206:12181 zookeeper1.ip:2181
    21. 59.69.101.206:12182 zookeeper2.ip:2181
    22. 59.69.101.206:12183 zookeeper3.ip:2181
    23. 59.69.101.206:16020 slave1.ip:16020
    24. 59.69.101.206:16021 slave2.ip:16021
    25. 59.69.101.206:16022 slave3.ip:16022
    26. // RegionServer
    27. 192.168.0.180 16020
    28. 192.168.0.74 16021
    29. //