NOSQL的出现
NOSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性,
数据之间无关系,这样就非常容易扩展。
NOSQL有如下特点:
模式自由:不像传统的关系型数据库需要定义数据库、数据表等结构才可以存取数据,
数据表中的每一条记录都可能有不同的属性和格式;
逆范式:去除约束,降低事务要求,更利于数据的分布式存储,与MySQL范式相反;
多分区存储:存储在多个节点上,很好地进行水平扩展,提高数据的读、写性能;
多副本异步复制:为了保证数据的安全性,会保存数据的多个副本;
弹性可扩展:可以在系统运行过程中动态的增删节点,数据自动平衡移动,不需要人工的干预操作;
软事务:事务是关系型数据库的一个特点,NoSQL数据库不能完全满足事务的ACID特性,但是能保证事务的最终一致性;
HBase数据库
1.HBase是在HDFS上面向列的分布式的数据库;
HBase首先是数据库,分布式的,面向列的,稀疏,<一定在HDFS基础上>;
Google发布三篇论文:GFS、MapReduce、BigTable开启分布式存储和计算的纪元;
hdfs+MapRedece(Hadoop)解决离线分析;HBase解决实时处理业务需求;
2.HBase不是关系型数据库,它不支持SQL;
3.列簇(Column family):
物理上,列簇存储在文件系统中,面向列簇的存储器;
创建table时,必须制定列簇,列簇的中列可随时增加;
针对调优和存储考虑,需将列簇成员设置成相同的访问权限和大小特征;
HBase特点
大:一个表可以有数十亿行,上百万列;
无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;
面向列:面向列(族)的存储和权限控制,列(族)独立检索;
稀疏:对于空(null)的列,并不占用存储空间,表可以设计的非常稀疏;
数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;
数据类型单一:Hbase中的数据都是字符串,没有类型。
在独立模式下,HBase在此单个JVM中运行所有守护程序,即HMaster,单个HRegionServer和ZooKeeper守护程序
HBase安装搭建:
1.独立模式(本地存储):
a.下载Hbase版本:
说明:HBase版本选型为:1.3.1版本【hbase-1.3.1-bin.tar.gz】 拷贝到master下
b.解压HBase:
$>tar -zxvf hbase-1.3.1-bin.tar.gz
$>ln -s hbase-1.3.1/ hbase
c.设置环境变量:
【~/.bash_profile】中追加一下命令:
#hbase install
export HBASE_HOME=/home/crx/soft/hbase
export PATH=$HBASE_HOME/bin:$PATH
执行/etc/profile文件,使环境变量生效:
$> source ~/.bash_profile
d.修改HBase配置文件
【hbase-env.sh】
export JAVA_HOME=/home/crx/soft/jdk
e. 【hbase-site.xml】
<property >
<name>hbase.tmp.dir</name>
<value>/home/crx/tmp/hbase</value>
</property>
<property >
<name>hbase.rootdir</name>
<value>file:///home/crx/hbase</value>
</property>
f. 开启HBase
$>start-hbase.sh
5506 HMaster //单机模式下,在一个守护进程中
g.测试
$>hbase shell
打开webUI端口:http://master:16010 ;