模型
(1)逻辑模型
Hbase的名字的来源是Hadoop database,即hadoop数据库。
主要是从用户角度来考虑,即如何使用Hbase。
(2)物理模型
主要从实现Hbase的角度来讨论。
访问接口
1. Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase表数据。
2. HBase Shell,HBase的命令行工具,最简单的接口,适合HBase管理使用。
3. Thrift Gateway,利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问HBase表数据。
4. REST Gateway,支持REST 风格的Http API访问HBase, 解除了语言限制。
5. Pig,可以使用Pig Latin流式编程语言来操作HBase中的数据,和Hive类似,本质最终也是编译成MapReduce Job来处理HBase表数据,适合做数据统计。
6. Hive,当前Hive的Release版本尚没有加入对HBase的支持,但在下一个版本Hive 0.7.0中将会支持HBase,可以使用类似SQL语言来访问HBase。
HBase安装配置
①下载压缩包(选择与自己安装的Hadoop版本的兼容版本,见后面附录)
选择稳定版hbase-1.4.9-bin.tar.gz,在Windows里面下载。
②将压缩包从Windows传输到Linux当前目录下
SecureCRT 【File】→【Connect SFTP Session】开启sftp操作
③安装
解压安装到指定目录下/opt/module(/opt是系统自带目录,之下的/module是自己创建的)
④配置环境变量
在/etc/profile文件里添加HBase安装路径的配置信息,之后用source命令使配置生效。安装之后的目录为hbase-1.4.9,修改为hbase,所以我的HBase安装路径是/opt/module/hbase。
测试HBase安装成功,命令hbase version,或hbase。
存储格式
HBase中的所有数据文件都存储在Hadoop HDFS文件系统上,主要包括上述提出的两种文件类型:
1. HFile, HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile
2. HLog File,HBase中WAL(Write Ahead Log) 的存储格式,物理上是Hadoop的Sequence File HFile
HBase设计模型
HBase中的每一张表就是所谓的BigTable。BigTable会存储一系列的行记录,行记录有三个基本类型的定义:
- RowKey
是行在BigTable中的唯一标识。
- TimeStamp:
是每一次数据操作对应关联的时间戳,可以看作SVN的版本。
- Column:
定义为<family>:<label>,通过这两部分可以指定唯一的数据的存储列,family的定义和修改需要对HBase进行类似于DB的DDL操作,
而label,不需要定义直接可以使用,这也为动态定制列提供了一种手段。family另一个作用体现在物理存储优化读写操作上,同family
的数据物理上保存的会比较接近,因此在业务设计的过程中可以利用这个特性。