8 HBase结构介绍

2017-03-12 09:47

HBase介绍

HBase是参考google的bigtable的一个开源产品,建立在hdfs之上的一个提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。是一种介于nosql和RDBMs之间的一种数据库系统,仅支持通过rowkey和range进行数据的检索,主要存储非结构化数据和半结构化数据。
HBase和Hadoop一样,目标是通过横向扩展,添加普通机器来增加存储性能和计算性能。HBase特点:

1. 大(一个表可以有上亿行以及百万级的行)、

2. 面向列存储、
3. 稀疏(由于null不占用存储空间,所有表结果可以设计的非常稀疏)

HBase组成结构

HBase使用Zookeeper进行集群节点管理,当然HBase自身集成了一个ZK系统,不过一般情况在实际生产环境中不使用。
HBase由master和regionserver两类节点(如果使用HBase自带的zk服务,那么还有HQuorumPeer进程)。Hbase支持提供backup master进行master备份。其中master节点负责和zk进行通信以及存储regionserver的相关位置信息,regionserver节点实现具体对数据的操作,最终数据存储在hdfs上。
这里写图片描述

RegionServer集群结构

这里写图片描述

一台机器一个regionsever,包含一个hlog和多个region。
一个region中包含多个store,分为memstore和storefile。

HBase逻辑存储结构

这里写图片描述
如果只指定rowkey,不指定时间戳,则会读出每个列的最新版本。

HBase物理存储结构

这里写图片描述
key :rowkey+列簇+列名+时间戳
value:值

HBase安装-前期准备

HBase有三种安装方式,第一种独立模式,第二种是分布式模式(集成zookeeper),第三种是分布式模式(独立zookeeper)。
安装步骤:
1. 安装jdk,至少1.6(版本u18除外)。
2. 安装ssh免密码登录。
3. 修改hostname和hosts,hbase通过hostname获取ip地址。
4. Hadoop安装。
5. 生成环境集群(NTP + ulimit&nproc + hdfs的dfs.datanode.max.xcievers)
6. hbase下载安装

HBase安装

安装步骤:
1. 下载hbase,选择版本hbase-0.98.6-cdh5.3.6,下载地址http://archive.cloudera.com/cdh5/cdh/5/
2. 解压压缩包到目录/home/hadoop/bigdater/下。
3. 在hbase的根目录下创建一个文件夹hbase来存储临时文件和pid等。默认/tmp。
4. 修改配置信息 hbase.home/conf/hbase−site.xml和 {hbase.home}/conf/hbase-env.sh文件。
5. 指定regionserver节点hostname,修改文件regionservers。
6. 创建到hdfs-site.xml的软连接或者配置连接hdfs的配置信息。(与HBASE_CLASSPATH 的设置只需要有一个存在就可以了)
7. 添加hbase相关信息到环境变量中。
8. 启动hbase集群并验证。

[hadoop@hh softs]$ tar -zxf hbase-0.98.6-cdh5.3.6.tar.gz -C ~/bigdater/
[hadoop@hh hbase-0.98.6-cdh5.3.6]$ mkdir hbase
1 下载
http://archive.cloudera.com/cdh5/cdh/5/hbase-0.98.6-cdh5.3.6.tar.gz
2 解压
tar -zxvf xxx
3 修改conf/hbase-env.sh
export JAVA_HOME=/usr/local/jdk
export HBASE_CLASSPATH=/home/hadoop/bigdater/hadoop-2.5.0-cdh5.3.6/etc/hadoop
export HBASE_PID_DIR=/home/hadoop/bigdater/hbase-0.98.6-cdh5.3.6/hbase/pids
export HBASE_MANAGES_ZK=true 【使用hbase集成的zookeeper】
4 修改hbase-site.xml
    hbase.rootdir=hdfs://hh/hbase
    hbase.cluster.distributed=true
    hbase.tmp.dir=/home/hadoop/bd/hbase-0.98.6-cdh5.3.6/hbase/tmp
5 修改regionservers
    将主机名添加进去,每行一个
6 修改环境变量
    添加HBASE_HOME和PATH
###### hbase 0.98.6
export HBASE_HOME=/home/hadoop/bigdater/hbase-0.98.6-cdh5.3.6/
export PATH=$PATH:$HBASE_HOME/bin

source ~/.bash_profile
[hadoop@hh tmp]$ hbase version
7 启动验证

HBase启动

启动集群命令: start-hbase.sh
停止集群命令: stop-hbase.sh
单独启动/停止进程命令: (单独的启动master或者regionserver)
hbase-daemon.sh (start|stop) (master|regionserver|zookeeper)
hbase-daemons.sh (start|stop) (regionserver|zookeeper)【针对集群】

HBase验证

验证分为三种方式:
1. jps查看是否有hbase的正常启动。
2. web界面查看是否启动成功。http://192.168.100.120:60010/
3. shell命令客户端查看是否启动成功。
4. 查看hbase是否安装成功,查看hdfs文件下是否有hbase的文件夹。

local-master-backup.sh start 1
local-regionservers.sh start 1
可以模拟出多个master和regionserver (最多100个,不只是1个)

HBase其他–备份master【真正的master备份】

如果需要使用hbase的多master结构,那么需要在conf文件夹下添加backup-masters文件,然后一行一个主机名,和regionservers是一样的;或者在hbase-env.sh中添加变量HBASE_BACKUP_MASTERS,对应value为backup-masters存储路径(启动命令一样)。