Hbase是一种分布式nosql数据库系统,能实时操作数据:增删改查

一、hbase的特性

1、hbase数据的最终持久化存储是基于hsfs文件系统,存储容量几乎无限,可以随时在线扩容
2、hbase的数据增删改查功能模块是分布式系统
3、nosql数据库,表结构

hbase 行存储 hbase存储机制_hbase 行存储

二、hbase工作机制

1、hbase工作机制示意图

hbase 行存储 hbase存储机制_hbase安装配置_02


2、hbase工作机制详细解析

a. habse的整体工作机制是接受客户端发来的请求命令,从hdfs中读取表文件信息返回给客户端;
b. 每个hbase服务器负责表文件中对应region区域,hdfs上表文件的存储也是分为每个region单独存储,每个region中又分为多个列族存储;
c. hbase集群中有两种角色,regionserver和master,
 regionserver负责响应客户端请求,读取表文件;
 master负责监控regionserver的状态,以便及时处理掉线的regionserver,保证hbase集群正常运行;当一个region挂掉时,master会及时监控到,这里利用了zookeeper管理regionserver状态信息
 当一个master挂掉时,不会影响客户端查数据,但如果此时regionserver挂掉,master又不能及时监控到,便会影响数据查询;解决方法就是再设置一台master,一台active状态,一台standby状态用作备用,当active的master挂掉,standby的master将会变为active状态,监控regionserver。
d. master和zookeeper就组成了高可用。

三、Hbase的安装配置

1、上传文件、解压
安装包:链接:https://pan.baidu.com/s/1VqkS2OI7Y0EngxKCOGwFyg 密码:ia12
解压:tar -zxvf hbase-1.2.6-bin.tar.gz -C /usr/local
2、把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下
3、修改hbase-env.sh

#修改JAVA_HOME的路径
export JAVA_HOME=/usr/java/jdk1.7.0_55
#告诉hbase使用外部的zk 
export HBASE_MANAGES_ZK=false

4、vi hbase-site.xml

<configuration>
    <!-- 指定hbase在HDFS上存储的路径 -->
    <property>
            <name>hbase.rootdir</name>
            <value>hdfs://hadoop01:9000/hbase</value>
    </property>
    <!-- 指定hbase是分布式的 -->
    <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
    </property>
    <!-- 指定zk的地址,多个用“,”分割 -->
    <property>
            <name>hbase.zookeeper.quorum</name>
            <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
    </property>
</configuration>

5、vi regionservers

hadoop01
hadoop02
hadoop03

6、 配置环境变量
vi /etc/profile

export HBASE_HOME=/usr/local/hbase-1.2.6/
export PATH=$PATH:$HBASE_HOME/bin

7、分发文件
scp -r /usr/local/hbase-1.2.6/ hadoop02:/usr/local
scp -r /usr/local/hbase-1.2.6/ hadoop03:/usr/local
scp -r /etc/profile hadoop02:/etc
scp -r /etc/profile hadoop03:/etc
8、时间同步
yum install -y ntp
ntpdate cn.pool.ntp.org
9、启动Hbase
分别启动zookeeper
./zkServer.sh start
启动hadoop集群
start-dfs.sh
启动hbase,在主节点上运行:
start-hbase.sh
10、通过浏览器访问hbase管理页面
hadoop01:16010
7.为保证集群的可靠性,要启动多个HMaster (备用master)
hbase-daemon.sh start master