15 Hbase的理解
一、Hbase概念
1 HBase概述
- HBase是一个构建在HDFS上的分布式列存储系统;
- HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储;
- 从逻辑上讲,HBase将数据按照表、行和列进行存储。
- Hbase与HDFS对比
- 两者都具有良好的容错性和扩展性,都可以扩展到成百上千个节点;
- HDFS适合批处理场景,而Hbase适合
- 不支持数据随机查找
- 不适合增量数据处理
- 不支持数据更新
- Hbase表的特点
- 大:一个表可以有数十亿行,上百万列;
- 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;
- 面向列:面向列(族)的存储和权限控制,列(族)独立检索;
- 稀疏:对于空(null)的列,并不占用存储空间,表可以设计的非常稀疏;
- 数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;
- 数据类型单一:Hbase中的数据都是字符串,没有类型。
- 行存储与列存储
2 Hbase数据模型
- HBase是基于Google BigTable模型开发的,典型的key/value系统;
- Hbase逻辑视图
- Rowkey与Column Family
- Hbase基本概念
- Hbase数据模型
- Hbase支持的操作
3 HBase物理模型
4 HBase基本架构
- HBase架构
- Hbase基本组件
- Zookeeper作用
- Write-Ahead-Log(WAL)
- HBase容错性
- Region定位
- ROOT-表与.META.表
- HDFS与Hbase比较
- 关系数据库与Hbase比较
5 HBase应用举例
- 何时使用HBase
- 什么公司在使用HBase
- Hbase在淘宝的应用
- Hbase在facebook应用—消息系统
二、Hbase环境安装
1. 软件版本下载(注意需要ZK环境)
http://mirror.bit.edu.cn/apache/hbase/
2. 下载软件包
- Master
wget http://archive.apache.org/dist/hbase/0.98.6/hbase-0.98.6-hadoop2-bin.tar.gz
tar zxvf hbase-0.98.6-hadoop2-bin.tar.gz
3. 修改Hbase配置
- Master
cd hbase-0.98.6-hadoop2/conf
vim regionservers
master
slave1
slave2
vim hbase-env.sh
#JavaHome
export JAVA_HOME=/usr/local/src/jdk1.8.0_191
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
#是否使用自带的ZK
export HBASE_MANAGES_ZK=false
vim hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>150000</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
4. 增加环境变量
- Master、Slave1、Slave2
vim ~/.bashrc
#Hbase
HBASE_HOME=/usr/local/src/hbase-0.98.6-hadoop2
HBASE_CLASSPATH=$HBASE_HOME/conf
HBASE_LOG_DIR=$HBASE_HOME/logs
PATH=$PATH:$HBASE_HOME/bin
- 刷新环境变量
source ~/.bashrc
5. 拷贝安装包
- Master
scp -r /usr/local/src/hbase-0.98.6-hadoop2/ root@slave1:/usr/local/src/hbase-0.98.6-hadoop2/
scp -r /usr/local/src/hbase-0.98.6-hadoop2/ root@slave2:/usr/local/src/hbase-0.98.6-hadoop2/
6. 启动关闭集群
- Master
bin/start-hbase.sh
bin/stop-hbase.sh
- master
- slave1
- slave2
7. 监控页面
http://master:60010/master-status