一、Hbase简介
1.hbase是NOSQL非关系型数据库
1.not only sql:一般的nosql不支持SQL语言,一般都有自己的语法;
2.nosql的诞生
1.数据量越来越大;
2.查询的性能要求越来越高;
3.hbase的特点
1.存储数据量较大(分布式的存储)
2.检索查询速度较快(内存)
3.分布式架构
4.主从架构
1.主节点:master;
2.从节点:regionserver(负责真正的数据存储,一般与DataNode在同一台机器);
3.hbase依赖zookeeper和hdfs(hbase中数据最终存储在hdfs上),所以在安装hbase前需要安装zookeeper和hdfs;
4.对比hbase和MySQL
1.MySQL
1.结构上
1.数据库->表->列(主键)->数据
2.实例:id name age sex
1 zhangsan 21 male
2 lisi null female
select age from user;->null
2.Hbase
1.结构上
1.namespace:相当于关系型数据库的概念,但在Hbase中namespace也是表名的一部分;
2.列族:将拥有相似属性的列组合到一起,放到同一个列族(集合)下面;
3.列标签:相当于关系型数据库中的列;
4.rowkey:唯一标识一列,相当于关系型数据库中的主键;
5.timestamp:插入时间戳,插入每条记录时,如果不指定这一列的值默认以当前插入时间作为该列的值;
6.version:表示hbase中存储值的版本的个数,默认情况下以timestamp这一列来代表不同的版本,(每次添加一个新版本时timestamp都会更新为当前时间),在创建表的时候可以指定version的个数,version的默认值是1(即只保留一个版本);
7.demo
![rowkey:20170821_1001(if VERSION=2,则每列可以保存两个版本的值)
cf1(列族):info
age:22,24(当VERSION=2时age中可以有两个版本的值)
name:zhangsan
sex:men
rowkey:20170821_1002
cf1(列族):info
age:24
name:lisi
](https://img-blog.csdn.net/20170822222626184?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzEwNTMzNTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3.注意
在Hbase中如果某一个列中没有值,则该条记录就没有这一列(在mysql中如果这一列没有值可以使用null表示),如果该列有值,该记录必然有这一列。