1 Hbase入门教程
HBase是一个分布式的、面向列的开源数据库,该技术来源于 FayChang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
HBase在Hadoop生态位置图1-1
1.1 Hbase概念术语
1、行键Row Key:主键是用来检索记录的主键,访问hbasetable中的行。
2、列族Column Family:Table在水平方向有一个或者多个ColumnFamily组成,一个ColumnFamily中可以由任意多个Column组成,即ColumnFamily支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式存储,用户需要自行进行类型转换。
3、列column:由Hbase中的列族ColumnFamily + 列的名称(cell)组成列。
4、单元格cell:HBase中通过row和columns确定的为一个存贮单元称为cell。
5、版本version:每个 cell都保存着同一份数据的多个版本。版本通过时间戳来索引。
6、Hbase数据结构图:
rowkey(行键) |
product |
|
food(列族) |
|
name(列标识符) |
price(列标识符) |
name |
price(列标识符) |
|
rowkey001 |
ThinkPad E550 |
4199 |
orange |
6.0 |
version(版本) |
||||
5.0 |
||||
5.5 |
||||
6.0 |
HBase数据结构图1-2
1.2 Hbase下载
Hbase是建立Hadoop基础上的数据库文件,因此Hbase是分布式的数据库。Hbase也提供了单机版的安装。
Hadoop和Hbase版本关系表:
版本 |
HBase-0.94.x |
HBase-0.98.x |
HBase-1.0.x |
HBase-1.1.x |
HBase-1.2.x |
Hadoop-1.0.x |
X |
X |
X |
X |
X |
Hadoop-1.1.x |
S |
NT |
X |
X |
X |
Hadoop-0.23.x |
S |
X |
X |
X |
X |
Hadoop-2.0.x-alpha |
NT |
X |
X |
X |
X |
Hadoop-2.1.0-beta |
NT |
X |
X |
X |
X |
Hadoop-2.2.0 |
NT |
S |
NT |
NT |
X |
Hadoop-2.3.x |
NT |
S |
NT |
NT |
X |
Hadoop-2.4.x |
NT |
S |
S |
S |
S |
Hadoop-2.5.x |
NT |
S |
S |
S |
S |
Hadoop-2.6.0 |
X |
X |
X |
X |
X |
Hadoop-2.6.1+ |
NT |
NT |
NT |
NT |
S |
Hadoop-2.7.0 |
X |
X |
X |
X |
X |
Hadoop-2.7.1+ |
NT |
NT |
NT |
NT |
S |
Hadoop和JDK版本关系表:
Hbase版本 |
JDK 6 |
JDK 7 |
JDK 8 |
1.2 |
Not Supported |
yes |
yes |
1.1 |
Not Supported |
yes |
Not Supported |
1 |
Not Supported |
yes |
Not Supported |
0.98 |
yes |
yes |
Not Supported |
0.94 |
yes |
yes |
N/A |
- S = supported and tested,支持
- X = not supported,不支持
- NT = not tested enough.可以运行但测试不充分
1.3 Hbase单机部署
在《Hadoop教程(五)Hadoop分布式集群部署安装》安装的是Hadoop-2.7.1版本,在此需要下载Hbase-1.2.x版本:
下载地址:http://mirror.bit.edu.cn/apache/hbase/1.2.1/hbase-1.2.1-bin.tar.gz
1、配置本机hosts
127.0.0.1 localhost
127.0.0.1 hbase-domain hbase
2、下载hbase-1.2.1-bin.tar到目录位置:/usr/local/software/
执行命令:
mkdir /usr/local/software
cd /usr/local/software
wget http://mirror.bit.edu.cn/apache/hbase/1.2.1/hbase-1.2.1-bin.tar.gz
3、解压Hbase
执行命令:tar -zxvf hbase-1.2.1-bin.tar.gz
重命名:mv hbase-1.2.1 hbase_1.2.1
4、配置环境变量
export JAVA_HOME=/usr/local/software/jdk1.8.0_66
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HBASE_HOME=/usr/local/software/hbase_1.2.1
export PATH=.:$JAVA_HOME/bin:$HBASE_HOME/bin:$PATH
5、修改hbase-env.sh配置文件
执行命令:
vi /usr/local/software/hbase_1.2.1/conf/hbase-env.sh
修改内容:
export JAVA_HOME=/usr/local/software/jdk1.8.0_66
6、修改hbase-site.xml配置文件
执行命令:vi/usr/local/software/hbase_1.2.1/conf/hbase-site.xml
- <configuration>
- <property>
- <name>hbase.rootdir</name>
- <value>file:///home/hbase</value>
- </property>
- </configuration>
7、启动Hbase
执行命令:/usr/local/software/hbase_1.2.1/bin/start-hbase.sh
8、验证启动
执行命令:jps,查看运行的Hbase进程
1.4 学习Hbase推荐书籍:
1. 《Hbase权威指南》
2. 《Hbase实战》
3. 《Hbase企业应用开发实站》
4. 《Learning HBase(中文版)》
5. 《HBase管理指南》
--以上为《Hbase教程(一) Hbase入门教程》,如有不当之处请指出,我后续逐步完善更正,大家共同提高。谢谢大家对我的关注。
——厚积薄发(yuanxw)