<>Hbase高手之路 – 第六章 – HBase的高可用搭建
hbase集群如果只有一个master,一旦master出现故障,将导致整个集群出现故障,所以在世界的生产环境中,需要搭建hbase的高可用。
 <>一、 hbase高可用简介
就是让HMaster的高可用,需要再选择一个或多个节点也作用HMaster,其中只有一个HMaster为active,其他的为backupmaster
 <>二、 搭建hbase高可用
 <>1. 创建backup-masters文件
在hbase的conf文件夹中创建一个backup-masters的文件
 <>2. 修改内容
修改该文件内容,添加作为备份节点的信息
 <>3. 分发创建的文件
scp backup-masters hadoop02:$PWD scp backup-masters hadoop03:$PWD 
 <>4. 重新启动hbase
 <>(1) 先停止hbase
 <>(2) 启动hbase
 <>5. web UI界面查看
 <>6. 测试高可用
 <>(1) 尝试杀掉hadoop01的HMaster进程,模拟master宕机
 <>(2) 再次运行java API程序
 <>(3) 再次运行java API程序
 发现依旧可以正常运行
 <>(4) 查看hbase shell运行情况
hbase shell也可以正常运行
 <>7. 高可用原理
zookeeper临时节点 + watch + select
 <>三、 hbase的架构
 <>1. 系统架构
 <>1) Client
客户端,例如:发出HBase操作的请求。例如:之前我们编写的Java API代码、以及HBase shell,都是CLient
 <>2) Master Server
在HBase的Web UI中,可以查看到Master的位置。
 * 监控RegionServer
 * 处理RegionServer故障转移
 * 处理元数据的变更
 * 处理region的分配或移除
 * 在空闲时间进行数据的负载均衡
 * 通过Zookeeper发布自己的位置给客户端 
 <>3) Region Server
 * 
处理分配给它的Region
 * 
负责存储HBase的实际数据
 * 
刷新缓存到HDFS
 * 
维护HLog
 * 
执行压缩
 * 
负责处理Region分片
 * 
RegionServer中包含了大量丰富的组件,如下:
  Write-Ahead logs
  HFile(StoreFile)
  Store
  MemStore
  Region
 <>2. 逻辑结构模型
 <>1) Region
 * 在HBASE中,表被划分为很多「Region」,并由Region Server提供服务
 <>2) Store
 * Region按列蔟垂直划分为「Store」,存储在HDFS在文件中 
 <>3) MemStore
 * MemStore与缓存内存类似
 * 当往HBase中写入数据时,首先是写入到MemStore
 * 每个列蔟将有一个MemStore
 * 当MemStore存储快满的时候,整个数据将写入到HDFS中的HFile中 
 <>4) StoreFile
 * 每当任何数据被写入HBASE时,首先要写入MemStore
 * 当MemStore快满时,整个排序的key-value数据将被写入HDFS中的一个新的HFile中
 * 写入HFile的操作是连续的,速度非常快
 * 物理上存储的是HFile 
 <>5) WAL
 * WAL全称为Write Ahead Log,它最大的作用就是 故障恢复
 * WAL是HBase中提供的一种高并发、持久化的日志保存与回放机制
 * 每个业务数据的写入操作(PUT/DELETE/INCR),都会保存在WAL中
 * 一旦服务器崩溃,通过回放WAL,就可以实现恢复崩溃之前的数据
 * 物理上存储是Hadoop的Sequence File