Hbase精通---1.3.1版本

本文详细介绍了HBase的基础知识,包括它作为列式数据库的特性,与MySQL的区别,以及其数据模型、存储结构、列族、行键、Region、Store等方面。还探讨了HBase的读写流程、数据删除机制、优化策略,如预分区、RowKey设计和内存优化,并提到了HBase与Hive的集成以及协同处理器的概念。
摘要由CSDN通过智能技术生成

hbase概述
hbase 是基于goole bigtable 研发的
hbase 是分布式 可扩展 支持海量数据的NoSql列式数据库
mysql 是行式数据库,存储时候一行数据挨着一行数据存储
hbase 是列式数据库,一列数据存储挨着一列数据存储,取列内容比较容易

这里借鉴大佬的总结:
行式数据库&列式数据库区别
hdfs 不支持随机写操作
但是hbase 支持随机写操作,就是下载下来修改再长传(有优化) ,可以增删改查;

hbase 表的逻辑结构
逻辑上,hbase 数据模型同关系型数据库类似
hbase 底层物理存储结构kv 形式的 ,物理存储为hfile格式,hfile 和txt 一样都是一种文件格式
在这里插入图片描述
列族:多个列分类存储为一个列族,不同列族保存在不同文件夹里面,列是可以动态增加的
rowkey: 行键,按照字节数组保存,而且按照字典顺序保存,而且唯一
region:表按照rowkey 切分就是region,类似kafka 分区,这里有middleKey 的概念,region是表的切片
store: region 按照列族切分一个列族就是一个store,如上图6个store

hbase 表的物理存储
一条数据type 是put
上图一个单元格数据底层物理保存为一行
mysql 底层是按行按照,存储的csv 格式
**hbase 里面时间戳很重要不同版本数据根据时间戳进行区分

在这里插入图片描述
hbase 数据结构
namespace:
类似mysql 的database
hbase 自带hbase & default 俩个namespacs
类似kafka中__consumer_offset

region:
表的切片,建表默认一个region
hbase 可以随机增加列
hbase 的列相当与hbase 里面的数据

行row:
hbase 表中数据是由一个rowkey 和多个column 组成
rowkey 按照字典顺序存储的 ,可以按照rowkey 检索
相当与mysql 的主键,需要唯一

列column:
hbase 中列是有列族(column family)和列限定符(column qualifier)进行限定
例如 info;name. info:age, 建表时候只需要指定列族

TimeSamp:
用于表示不同版本数据
加入数据如果不指定时间戳.系统会自动加入上时间戳
取数据时默认取最新的数据,即时间戳最大的数据
hbase 建表默认只保存一个版本,可以通过alter修改可以默认保存的版本

cell:
当rowkey & column family & column qualifier & timestamp 唯一确定一个cell
cell 就是:timpStamp + value
cell 中数据没有类型存储全是字节数组

namespace
hbase 默认命名空间有default, hbase 命名空间
默认存表在default命名空间
有点类似java 的包

hbase 基本架构
regionServer作用: 数据增删差get put delete
DML
master :表的增删改 create delete alter数据增删改一般用不到master
只有写入数据过大,region 需要切分这时候需要master
以及region 分配以及region 的合并 DDL
zk: 保存hbase元数据,客户端读写先访问zk
说明:Hfile 是一种文件格式,类似txt
在这里插入图片描述

注意rowkey 底层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值