一、简介
HBase是一种构建在HDFS之上的分布式、面向列的存储系统。在需要实时读写、随机访问超大规模数据集时,可以使用HBase。
尽管已经有许多数据存储和访问的策略和实现方法,但事实上大多数解决方案,特别是一些关系类型的,在构建时并没有考虑超大规模和分布式的特点。许多商家通过复制和分区的方法来扩充数据库使其突破单个节点的界限,但这些功能通常都是事后增加的,安装和维护都和复杂。同时,也会影响RDBMS的特定功能,例如联接、复杂的查询、触发器、视图和外键约束这些操作在大型的RDBMS上的代价相当高,甚至根本无法实现。
hbase的特点是:
大:一个表可以有上亿行,上百万列。
面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。
稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
无模式:每一行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列。
数据多版本:每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号就是单元格插入时的时间戳。
数据类型单一:HBase中的数据都是字符串,没有类型。
二、安装
1.下载hbase安装包
http://archive.cloudera.com/cdh5/cdh/5/
选择与你安装的hadoop cdh5.xxxx对应的hbase cdh5.xxx即可
2.tar -zxvf 解压,修改hbase-env.sh
指定java的安装路径
export JAVA_HOME=/usr/java/jdk1.8.0/
还有一个是export HBASE_MANAGES_ZK=true
因为是单机版所以并没有zookeeper
默认应该就是true
3.修改hbase-site.xml文件
<configuration>
<!--指定临时目录的存放位置,和hadoop.tmp.dir相似-->
<property>
<name>hbase.tmp.dir</name>
<value>/usr/local/hadoop/app/hbase-1.2.0/tmp</value>
</property>
<!--注意一定要是你的主机名不能填地址-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://centos7:9000/hbase</value>
</property>
</configuration>
4.启动hbase
./bin/start-hbase.sh