0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Hbase的基础性介绍与入门

汽车玩家 来源:今日头条 作者:不一样的程序猿 2020-03-15 17:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

无论是 NoSQL,还是大数据领域,HBase 都是非常"炙热"的一门数据库。本文将对 HBase 做一些基础性的介绍,旨在入门。

一、简介

HBase 是一个开源的、面向列的非关系型分布式数据库,目前是Hadoop体系中非常关键的一部分。在最初,HBase是基于谷歌的 BigTable 原型实现的,许多技术来自于Fay Chang在2006年所撰写的Google论文"BigTable"。与 BigTable基于Google文件系统(File System)一样,HBase则是基于HDFS(Hadoop的分布式文件系统)之上而开发的。

HBase 采用 Java 语言实现,在其内部实现了BigTable论文提到的一些压缩算法、内存操作和布隆过滤器等,这些能力使得HBase 在海量数据存储、高性能读写场景中得到了大量应用,如 Facebook 在 2010年11 月开始便一直选用 HBase来作为消息平台的存储层技术。HBase 以Apache License Version 2.0开源,这是一种对商业应用友好的协议,同时该项目当前也是Apache软件基金会的顶级项目之一。

有什么特性

基于列式存储模型,对于数据实现了高度压缩,节省存储成本

采用 LSM 机制而不是B(+)树,这使得HBase非常适合海量数据实时写入的场景

高可靠,一个数据会包含多个副本(默认是3副本),这得益于HDFS的复制能力,由RegionServer提供自动故障转移的功能

高扩展,支持分片扩展能力(基于Region),可实现自动、数据均衡

强一致性读写,数据的读写都针对主Region上进行,属于CP型的系统

易操作,HBase提供了Java API、RestAPI/Thrift API等接口

查询优化,采用Block Cache 和 布隆过滤器来支持海量数据的快速查找

与RDBMS的区别

对于传统 RDBMS 来说,支持 ACID 事务是数据库的基本能力,而 HBase 则使用行级锁来保证写操作的原子性,但是不支持多行写操作的事务性,这主要是从灵活性和扩展性上做出的权衡。

ACID 要素包含 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)以及持久性(Durability)

总体来说, HBase 与传统关系数据库的区别,如下表所示:

Hbase的基础性介绍与入门

二、数据模型

下面,我们以关系型数据库的一个数据表来演示 HBase 的不同之处。

先来看下面这张表:

Hbase的基础性介绍与入门

这里记录的是一些家庭设备上报的状态数据(DeviceState),其中包括设备名、状态、时间戳这些字段。

在 HBase 中,数据是按照列族(Column Family,简称CF)来存储的,也就是说对于不同的列会被分开存储到不同的文件。那么对于上面的状态数据表来说,在HBase中会被存储为两份:

列族1. 设备名

Hbase的基础性介绍与入门

列族2. 状态

Hbase的基础性介绍与入门

这里Row-key是唯一定位数据行的ID字段,而Row-key 加上 CF、Column-Key,再加上一个时间戳才可以定位到一个单元格数据。其中时间戳用来表示数据行的版本, 在HBase中默认会有 3 个时间戳的版本数据,这意味着对同一条数据(同一个Rowkey关联的数据)进行写入时,最多可以保存3个版本。

在查询某一行的数据时,HBase需要同时从两个列族(文件)中进行查找,最终将结果合并后返回给客户端。 由此可见如果列族太多,则会影响读取的性能,在设计时就需要做一些权衡。

由此可见,HBase的使用方式与关系型数据库是大不相同的,在使用 HBase 时需要抛弃许多关系型数据库的思维及做法,比如强类型、二级索引、表连接、触发器等等。

然而 HBase 的灵活性及高度可伸缩性却是传统 RDBMS 无法比拟的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 大数据
    +关注

    关注

    64

    文章

    9116

    浏览量

    144206
  • Hbase
    +关注

    关注

    0

    文章

    27

    浏览量

    11747
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    低成本自动驾驶数据采集设备理性分析:康谋入门套装适配解析

    自动驾驶ADAS研发与科研工作中,数据采集是基础环节,而对于初创公司、高校科研团队等低预算群体而言,选择一款合适的入门级设备尤为关键。这类群体无需追求高端旗舰设备的极致性能,更看重设备的实用、适配
    的头像 发表于 05-29 17:49 16次阅读

    iMOTION2go:开启iMOTION设计平台的入门之选

    iMOTION2go:开启iMOTION设计平台的入门之选 在电机控制领域,一款好用的入门工具对于工程师来说至关重要。今天就来给大家介绍一下英飞凌的iMOTION2go,它是一款为iMOTION
    的头像 发表于 05-18 11:05 369次阅读

    探索Microchip数字电源入门套件:功能、硬件与应用全解析

    入门套件(Digital Power Starter Kit)为工程师们提供了一个理想的平台,用于探索和开发数字电源解决方案。本文将深入介绍该套件的功能、硬件组成以及演示程序的操作,帮助工程师们更好地理解和应用这一强大的工具。 文件下载: DM330017-1.pdf 套
    的头像 发表于 04-06 16:40 1194次阅读

    变频器维修入门

    电子发烧友网站提供《变频器维修入门.pdf》资料免费下载
    发表于 03-27 16:50 1次下载

    瑞萨MCU新品:RA0E3——性能与成本之间的良好平衡

    1.RA0E3简介RA0E3是RA0系列中的基础性微控制器(MCU),定位入门级产品线,适用于成本敏感和低功耗应用。RA0E3基于ArmCortex-M23内核,可提供高达32MHz的CPU运算性能
    的头像 发表于 03-20 16:23 1940次阅读
    瑞萨MCU新品:RA0E3——性能与成本之间的良好平衡

    瑞萨电子MCU新品RA0E3深度解析

    RA0E3是RA0系列中的基础性微控制器(MCU),定位入门级产品线,适用于成本敏感和低功耗应用。RA0E3基于Arm Cortex-M23内核,可提供高达32MHz的CPU运算性能,并集成16KB嵌入式闪存、2KB SRAM,支持-40至125°C的宽工作温度范围。
    的头像 发表于 03-11 10:08 1158次阅读
    瑞萨电子MCU新品RA0E3深度解析

    车载OBC电磁兼容测试必要分析报告

    车载OBC的电磁兼容测试需满足从国际到企业的多层级法规要求,且标准换版与实施节点直接影响产品上市周期及合规。法规要求呈现明确的层级递进结构:国际标准为基础框架,区域标准为市场准入门槛,企业标准则进一步细化技术要求。
    的头像 发表于 01-28 16:31 442次阅读
    车载OBC电磁兼容<b class='flag-5'>性</b>测试必要<b class='flag-5'>性</b>分析报告

    BlackBerry QNX与Vector发布Alloy Kore基础性车辆软件平台

    BlackBerry有限公司(纽约证券交易所代码:BB;多伦多证券交易所代码:BB)旗下业务部门QNX与Vector今日发布Alloy Kore基础性车辆软件平台(Foundational
    的头像 发表于 01-10 09:45 2676次阅读

    电池连接器气密检测仪操作入门指南-岳信仪器

    电池连接器的气密对于电池的性能和安全至关重要,而电池连接器气密检测仪能有效检测其气密。下面为大家带来该检测仪的操作入门指南。检测前准
    的头像 发表于 09-26 11:29 742次阅读
    电池连接器气密<b class='flag-5'>性</b>检测仪操作<b class='flag-5'>入门</b>指南-岳信仪器

    labview入门手册

    电子发烧友网站提供《labview入门手册.pdf》资料免费下载
    发表于 09-23 17:15 6次下载

    新手必看:电池包气密检测仪操作入门指南-岳信仪器

    对于刚接触电池包气密检测仪的新手来说,了解其操作方法至关重要。下面就为大家详细介绍电池包气密检测仪的操作入门知识。(1)操作前准备在开启检测仪前,要确保设备放置于平稳、干燥且通风良
    的头像 发表于 09-12 11:39 1009次阅读
    新手必看:电池包气密<b class='flag-5'>性</b>检测仪操作<b class='flag-5'>入门</b>指南-岳信仪器

    【PZ7020-StarLite 入门级开发板】——FPGA 开发的理想起点,入门与工业场景的双重优选

    对于初入 FPGA 与嵌入式系统开发领域的工程师而言,一款兼具专业与易用入门级开发板是快速建立技术认知、提升实践能力的关键工具。璞致电子科技(上海)有限公司深耕 SDR 及 ARM/FPGA
    的头像 发表于 08-08 14:53 1629次阅读
    【PZ7020-StarLite <b class='flag-5'>入门</b>级开发板】——FPGA 开发的理想起点,<b class='flag-5'>入门</b>与工业场景的双重优选

    CAN入门应用手册

    电子发烧友网站提供《CAN入门应用手册 .pdf》资料免费下载
    发表于 07-14 14:45 2次下载

    DSP从入门到精通全集

    这是一本循序渐进介绍DSP的书籍,从DSP的入门知识介绍到DPS的硬件,接口,应用,从DSP的ADC/DAC到数字滤波器处理。本文除了对DSP的各种软硬件知识进行介绍后,还结合实际,接
    发表于 07-12 14:36

    跟老齐学Python:从入门到精通

    本帖最后由 yuu_cool 于 2025-6-3 16:52 编辑 本资料是面向编程零基础读者的Python 入门教程,内容涵盖了Python 的基础知识和初步应用。以比较轻快的风格,向零基
    发表于 06-03 16:10