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. 修改配置信息
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存储路径(启动命令一样)。