HBase学习日志

记一下学习HBase时学了什么。

HBase定义,一种数据库。支持增删改查操作。

HBase逻辑结构:列、列族(多个列)、row key(唯一标识)、region(多个行,即表的切片内容)、store(真正存储的内容)。下图可以视作三维表。
在这里插入图片描述

HBase数据模型:Name Space(分HBase、default)、region、row、column和列族、Time Stamp、cell。

HBase物理存储:HBase中时间戳是很重要的概念。增删查改是与时间戳有关的(追求效率)。查找会找到最大时间戳的数据,修改会直接添加一个(大于之前的)时间戳。删除会把type改成delete,时间戳大于之前的put会判断为已删除。在修改时不会对数据本身改变,追求效率,删除原数据会之后进行。版本versions是维护相同数据(同rowkey和列)不同时间戳的个数。

在这里插入图片描述
在BigTable(HBase的前身)中,大部分概念和HBase都是相同或是一脉相承的,不论是从数据结构的角度,还是服务器集群实现的角度,都有很大的相似性。

学习历程:
搭建环境。(至少需要Zookeeper和Hadoop环境基础)
HBase的DDL、DML操作。(命令行操作,在Linux执行)
HBase的API操作。判断表存在、创建/删除表;创建命名空间;插入数据、查询数据;删除数据等。
HBase与Hadoop MR的连接。连接后可以互通的使用框架。自定义MR-Hbase任务:创建MR(Mapper、Reducer、Driver)代码对HBase数据库进行操作。打包成JAR在集群上运行。
HBase优化。(HMaster)高可用;预分区和RowKey设计;内存优化与基础(一些参数)优化。
在整个HBase优化中,预分区和RowKey设计的地位是比较高的。
HBase深层原理:写、读数据;FLUSH、COMPACT、SPLIT。

实际案例——谷粒微博:
1、需求分析。思考业务逻辑。根据需求制定表。
2、项目架构。(utils、dao、constants、bean)
3、Util类封装。(创建命名空间、创建表、判断表是否存在)
4、定义常量。(表名、列名、版本数)
5、写DAO层。(一些业务逻辑操作,包括发布微博、关注、取关等,操作涉及多张表)
6、测试。(初始化HBase——建三张表,然后写一些业务逻辑操作,看看控制台输出结果以及HBase Shell下scan表得到的结果)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值