美文网首页
Hbase介绍

Hbase介绍

作者: JavaHub | 来源:发表于2018-08-29 20:53 被阅读0次

1.HBase概述

HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java。它是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,为 Hadoop 提供类似于BigTable 规模的服务,可以存储海量稀疏的数据,并具备一定的容错性、高可靠性及伸缩性。主要应用场景是实时随机读写超大规模的数据。

HBase在列上实现了BigTable论文提到的压缩算法、内存操作和布隆过滤器。HBase的表能够作为MapReduce任务的输入和输出,可以通过Java API来存取数据,也可以通过REST、Avro或者Thrift的API来访问。

HBase不能取代RDBMS,因为二者的应用场景不同。HBase为了解决海量数据的扩展性,支持简单的增加节点来实现线性扩展,从而在集群上管理海量的非结构化或半结构化的稀疏数据。HBase仅能通过主键(raw key)或主键的range检索数据,支持单行事务

image.png

上图描述Hadoop EcoSystem中的各层系统。其中,HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。

此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便


2.HBase数据模型

image.png
  • 行健(Row Key):表的主键,表中的记录默认按照行健升序排序
  • 时间戳(Timestamp):每次数据操作对应的时间戳,可以看作是数据的版本号
  • 列族(Column Family):表在水平方向有一个或者多个列族组成,一个列族中可以由任意多个列组成,列族支持动态扩展,无需预先定义列的数量以及类型,所有列均以二进制格式存储,用户需要自行进行类型转换。所有的列族成员的前缀是相同的,例如“abc:a1”和“abc:a2”两个列都属于abc这个列族。
  • 表和区域(Table&Region):当表随着记录数不断增加而变大后,会逐渐分裂成多份,成为区域,一个区域是对表的水平划分,不同的区域会被Master分配给相应的RegionServer进行管理
  • 单元格(Cell):表存储数据的单元。由{行健,列(列族:标签),时间戳}唯一确定,其中的数据是没有类型的,以二进制的形式存储。

3.HBase架构

image.png

如上图所示,HBase架构中只有一个Master节点,称HMaster,还有多台RegionServer成为HRegionServer,每个RegionServer包含多个Region。

  • HBase访问接口:Java,REST,Thrift等
  • Master:集群的管理服务器,为RegionServer分配Region,负责 RegionServer的负载均衡,处理schema更新请求
  • RegionServer:管理HBase的数据存储,维护Region,处理IO请求。
  • Zookeeper:保证集群的高可用性、存储Region的寻址入口,并实时监控RegionServer的状态,存储HBase的Schema。

可以看到,client访问hbase上数据的过程并不需要Master参与(寻址访问Zookeeper和RegionServer,数据读写访问RegionServer),Master仅仅维护Table和Region的元数据信息,负载很低。


4.HBase访问接口

  • Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase表数据
  • HBase Shell,HBase的命令行工具,最简单的接口,适合HBase管理使用
  • Thrift Gateway,利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问HBase表数据
  • REST Gateway,支持REST 风格的Http API访问HBase, 解除了语言限制
  • Pig,可以使用Pig Latin流式编程语言来操作HBase中的数据,和Hive类似,本质最终也是编译成MapReduce Job来处理HBase表数据,适合做数据统计

5.HBase存储格式

HBase中的所有数据文件都存储在Hadoop HDFS文件系统上,主要包括上述提出的两种文件类型:

  • HFile, HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile
  • HLogFile,HBase中WAL(Write Ahead Log) 的存储格式,物理上是Hadoop的Sequence File

5.HBase应用场景

HBase的优势主要在以下几方面:

  • 海量数据存储
  • 快速随机访问
  • 大量写操作的应用
  • 常见的应用场景

互联网搜索引擎数据存储(BigTable要解决的问题)

  • 审计日志系统
  • 实时系统
  • 消息中心
  • 内容服务系统

转载来源:https://www.shiyanlou.com

相关文章

  • Hbase技术详细学习笔记(一)

    一、Hbase介绍 二、Hbase的Region介绍 三、Hbase的写逻辑介绍 四、Hbase的故障恢复 五、H...

  • Hbase笔记

    HBase - 1.hbase 介绍 ...

  • HBase原理I-HLog文件

    一、Hbase介绍 1、Hbase简介 Hbase是Hadoop Database的简称 ,Hbase项目是由Po...

  • hbase 1.4.13 安装部署

    认识HBase HBase介绍 HBase = Hadoop database,Hadoop数据库开源数据库官网:...

  • HBase 介绍

    Apache的 Hadoop数据库, 是一个分布式的、 可扩展的、 支持大数据存储的数据库。 当需要对大数据进行随...

  • Hbase介绍

    1.HBase概述 HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,...

  • Hbase介绍

    Hbase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭...

  • HBase介绍

    一、hbase应用场景 海量数据存储,上百亿行×上百万列,关系型数据库一般最多30个列,单表五百万 准实时查询,上...

  • HBASE介绍

    HBASE概述 官方网址: HBase是一个分布式的、面向列的开源数据库,该技术来源于Fay Chang 所撰写的...

  • Hbase介绍

    数据库类型 RDBMS:关系型数据库 MySQL NoSQL :Not only sql 解决大数据相关问题的数据...

网友评论

      本文标题:Hbase介绍

      本文链接:https://www.haomeiwen.com/subject/csxlwftx.html