FusionInsight大数据开发--HBase应用开发

HBase应用开发

HBase的定义

HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。

  • 适合于存储大表数据,可以达到实时级别。
  • 利用Hadoop HDFS 作为其文件存储系统,提供实时的读写的数据库系统。
  • 利用ZooKeeper作为协同服务。

HBase架构

HBase的适用场景

  • 海量数据
  • 高吞吐量
  • 需要在海量数据中实现高效的随机读取
  • 需要很好的性能伸缩能力
  • 能够同时处理结构化和非结构化的数据
  • 不需要完全拥有传统关系型数据库所具备的ACID特性

HBase应用开发流程

  • 制定业务目标
  • 准备开发环境
  • 下载并导入样例工程
  • 设计HBase表

设计原则:

查询数据唯一

数据均匀分布

查询性能优化

其他因素(region的提前划分,冷热Family的使用)

  • 根据场景开发工程
  • 编译并运行程序
  • 查看结果与调试程序

HBase表设计-总体原则

设计目标:提高吞吐量
设计原则:预分region,是region分布均匀,提高并发
实现方法:Rowkey范围和分布已知,建议预分region

设计目标:提高写入性能
设计原则:避免过多的热点region
设计方法:根据应用场景,可以考虑将时间因素引入Rowkey

设计目标:提高查询性能
设计原则:数据连续存储,频繁访问的数据存储一个地方,数据连续存储,离散度,信息冗余。
实现方法:同时读取的数据存放在同一行、cell,使用二级索引

HBase表设计-设计内容

设计内容通过不同维度,可分为:
Table设计(表粒度的设计)

  • 建表方法
  • 预分region
  • Family属性
  • 系统并发能力、数据清洗能力

RowKey设计

  • 原则:需要同时访问的数据,RowKey尽量连续
  • 访问效率:分散写,连续读
  • 属性内容:常用的查询场景属性
  • 属性值顺序:枚举,访问权重
  • 时间属性:循环Key+TTL,周期建表
  • 二级索引
  • 折中法
  • 冗余法

Family设计

可枚举数量少扩展性弱的属性作为Family

Qualifier设计

 不可枚举、数量多且扩展性强的属性作为Qualifier

原则:同时访问的数据存放到同一个Cell,列名尽量简短

HBase常用接口

create()

put()

get()

getScanner(Scan scan)

、、、

创建Configuration实例以及Kerberos安全认证

HBaseConfiguration方法

创建表

create Table方法

写入数据

put方法

读取一行数据

get方法

读取多行数据

scan方法

猜你喜欢

转载自www.cnblogs.com/cainiao-chuanqi/p/11010227.html