(一)HBase
-
理解hbase的核心概念
-
掌握hbase的特点
-
掌握hbase的架构
-
掌握hbase存储数据结构
-
掌握hbase的安装部署
-
掌握hbase shell命令基本操作
四、知识要点
1. habse是什么
漫画学习hbase----最易懂的Hbase架构原理解析
http://developer.51cto.com/art/201904/595698.htm
1.1 hbase的概念
1.2 hbase的特点
-
-
可以存储大批量的数据
-
-
==列式存储==
-
hbase表的数据是基于列族进行存储的,列族是在列的方向上的划分。
-
-
==极易扩展==
-
底层依赖HDFS,当磁盘空间不足的时候,只需要动态增加datanode节点服务(机器)就可以了
-
可以通过增加服务器来提高集群的存储能力
-
-
==高并发==
-
支持高并发的读写请求
-
-
==稀疏==
-
稀疏主要是针对Hbase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。
-
-
==数据的多版本==
-
hbase表中的数据可以有多个版本值,默认情况下是根据版本号去区分,版本号就是插入数据的时间戳
-
-
==数据类型单一==
-
所有的数据在hbase中是以字节数组进行存储
-
2 hbase整体架构
-
客户端
-
Client包含了访问Hbase的接口
-
另外Client还维护了对应的cache来加速Hbase的访问,比如cache的.META.元数据的信息
-
zookeeper集群
-
作用
-
实现了HMaster的高可用
-
保存了hbase的元数据信息,是所有hbase表的寻址入口
-
对HMaster和HRegionServer实现了监控
-
hbase集群的老大
-
作用
-
为HRegionServer分配Region
-
维护整个集群的负载均衡
-
维护集群的元数据信息
-
发现失效的Region,并将失效的Region分配到正常的HRegionServer上
-
-
-
hbase集群中的小弟
-
负责管理Region
-
接受客户端的读写数据请求
-
切分在运行过程中变大的region
-
-
hbase集群中分布式存储的最小单元
3 hbase表的数据模型
-
行键
-
table的主键,table中的记录按照rowkey 的字典序进行排序
-
-
列族
-
hbase表中的每个列,都归属与某个列族。列族是表的schema的一部分(而列不是),必须在使用表之前定义。
-
-
时间戳
-
每次数据操作对应的时间戳,可以看作是数据的version number版本号
-
-
列
-
列族下面的具体列
-
属于某一个ColumnFamily,类似于我们mysql当中创建的具体的列
-
-
单元格
-
由{row key, column( =<family> + <label>), version} 唯一确定的单元
-
cell中的数据是没有类型的,全部是以字节数组进行存储
-
6 hbase集群的web 管理界面
启动好hbase集群之后,可以访问地址:HMaster的主机名:16010
例如:
http://node1:16010
可以看到整个hbase集群的相关信息.
7 hbase shell命令基本操作
详细见《HBase常用shell操作.md》操作文档
五、拓展
8 hbase在实际场景中的应用
-
船舶GPS信息,全长江的船舶GPS信息,每天有1千万左右的数据存储。
8.2、金融方面
-
消费信息、贷款信息、信用卡还款信息等
8.3、电商方面
-
电商网站的交易信息、物流信息、游览信息等
8.4、电信方面
-
通话信息、语音详单等
==总结:海量明细数据的存储,并且后期需要有很好的查询性能==
一些基本概念