Hbase 基础 (待完善)

1.什么是HBase?

   HBaseApache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问。

HBase的目标是存储并处理大型的数据。

HBase是一个开源的,分布式的,多版本的,面向列的存储模型。它存储的是松散型数据。

2.HBase 特性

1高可靠性

2 高效性

3 面向列

4 可伸缩

5 可在廉价PC Server搭建大规模结构化存储集群

HBase是Google BigTable的开源实现,其相互对应如下:

Google HBase
文件存储系统  GFS  HDFS
海量数据处理  MapReduce Hadoop MapReduce
协同服务管理    Chubby Zookeeper

 

HBase关系图:

 

HBase位于结构化存储层,围绕HBase,各部件对HBase的支持情况:
Hadoop部件            作用
HDFS              高可靠的底层存储支持
MapReduce   高性能的计算能力
Zookeeper            稳定服务和failover机制
Pig&Hive 高层语言支持,便于数据统计
Sqoop 提供RDBMS数据导入,便于传统数据库向HBase迁移

访问HBase的接口

方式            特点              场合
Native Java API      最常规和高效            Hadoop MapReduce Job并行处理HBase表数据
HBase Shell 最简单接口             HBase管理使用
Thrift Gateway      利用Thrift序列化支持多种语言     异构系统在线访问HBase表数据
Rest Gateway 解除语言限制            Rest风格Http API访问
PigPig Latin六十编程语言处理数据   数据统计
Hive 简单,SqlLike


hbase 数据模型

 

关系型数据库表 (以一个网上订单为例)


HBase表


两种表的关系


组成部件说明:

Row Key:     Table主键 行键Table中记录按照Row Key排序
Timestamp     每次对数据操作对应的时间戳,也即数据的version number
Column Family:  列簇,一个table在水平方向有一个或者多个列簇,列簇可由任意多个Column组成,

       列簇支持动态扩展,无须预定义数量及类型,二进制存储,用户需自行进行类型转换

hbase 数据存储 

 

Table&Region


1. Table随着记录增多不断变大,会自动分裂成多份Splits,成为Regions
2. 一个region由[startkey,endkey)表示
3. 不同region会被Master分配给相应的RegionServer进行管理





文件按rowkey 分布在 不同的region 上 (分块)

在region 上,不同列簇的的分布在不同的hfile上(分簇)

hfile 每一条数据(列成员)存储结构 kv:

key rowkey + 列簇+列成员+时间戳

value :字段值


如何查找一条数据 

 ---两张特殊表:-ROOT- & .META.


.META.   记录用户表的Region信息,同时,.META.也可以有多个region
-ROOT-   记录.META.表的Region信息,但是,-ROOT-只有一个region
Zookeeper中记录了-ROOT-表的location
客户端访问数据的流程:
Client -> Zookeeper -> -ROOT- -> .META. ->用户数据表
多次网络操作,不过client端有cache缓存

HBase 系统架构图


















HLog

HLog(WAL log):WAL意为write ahead log,用来做灾难恢复使用,HLog记录数据的所有变更,一旦region server 宕机,就可以从log中进行恢复。

HLog文件就是一个普通的Hadoop Sequence File, Sequence File的value是key时HLogKey对象,其中记录了写入数据的归属信息,除了table和region名字外,还同时包括sequence number和timestamp,timestamp是写入时间,sequence number的起始值为0,或者是最近一次存入文件系统中的sequence number。 Sequence File的value是HBase的KeyValue对象,即对应HFile中的KeyValue。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值