Hbase高手之路 -- 第六章 -- HBase的高可用搭建

Hbase高手之路 – 第六章 – HBase的高可用搭建

hbase集群如果只有一个master,一旦master出现故障,将导致整个集群出现故障,所以在世界的生产环境中,需要搭建hbase的高可用。

一、 hbase高可用简介

就是让HMaster的高可用,需要再选择一个或多个节点也作用HMaster,其中只有一个HMaster为active,其他的为backupmaster

二、 搭建hbase高可用

1. 创建backup-masters文件

在hbase的conf文件夹中创建一个backup-masters的文件
Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第1张图片

2. 修改内容

修改该文件内容,添加作为备份节点的信息

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第2张图片

3. 分发创建的文件

scp backup-masters hadoop02:$PWD
scp backup-masters hadoop03:$PWD

在这里插入图片描述

4. 重新启动hbase

(1) 先停止hbase

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第3张图片

(2) 启动hbase

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第4张图片
Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第5张图片
Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第6张图片
Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第7张图片

5. web UI界面查看

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第8张图片
Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第9张图片

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第10张图片

6. 测试高可用

(1) 尝试杀掉hadoop01的HMaster进程,模拟master宕机

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第11张图片

(2) 再次运行java API程序

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第12张图片

(3) 再次运行java API程序

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第13张图片
发现依旧可以正常运行

(4) 查看hbase shell运行情况

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第14张图片

hbase shell也可以正常运行

7. 高可用原理

zookeeper临时节点 + watch + select

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第15张图片

三、 hbase的架构

1. 系统架构

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第16张图片

1) Client

客户端,例如:发出HBase操作的请求。例如:之前我们编写的Java API代码、以及HBase shell,都是CLient

2) Master Server

在HBase的Web UI中,可以查看到Master的位置。

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第17张图片

  • 监控RegionServer
  • 处理RegionServer故障转移
  • 处理元数据的变更
  • 处理region的分配或移除
  • 在空闲时间进行数据的负载均衡
  • 通过Zookeeper发布自己的位置给客户端

3) Region Server

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第18张图片

  • 处理分配给它的Region

  • 负责存储HBase的实际数据

  • 刷新缓存到HDFS

  • 维护HLog

  • 执行压缩

  • 负责处理Region分片

  • RegionServer中包含了大量丰富的组件,如下:
     Write-Ahead logs
     HFile(StoreFile)
     Store
     MemStore
     Region

2. 逻辑结构模型

Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第19张图片

1) Region

  • 在HBASE中,表被划分为很多「Region」,并由Region Server提供服务
    Hbase高手之路 -- 第六章 -- HBase的高可用搭建_第20张图片

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

你可能感兴趣的:(hbase,hadoop,大数据,hbase,big,data,hadoop)