HBase介绍

HBase是一种基于Apache Hadoop的分布式、多版本、面向列的NoSQL数据库,特别适用于大表和大数据量的实时读写场景。其特点包括强大的横向扩展能力、高写入吞吐量、优秀的随机读性能、高可用性和错误隔离。HBase在Facebook、淘宝等公司有实际应用,与Hadoop生态系统紧密集成。HBase运行模式有单机、伪分布式和完全分布式,提供多种访问方式如Java API、Shell、Thrift Gateway和REST Gateway。其数据模型为行和列族组成的表,支持版本化。在分布式架构中,通过Zookeeper进行协调,RegionServer负责数据读写,Master负责表和Region管理。HBase通过HDFS存储数据,Region按大小分割并分布在不同RegionServer上,保证高并发和数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

HBase介绍

 

  1. 概述
    1. HBase是什么?

HBase是一种NOSQL数据库,是基于Apache Hadoop的、分布式的、多版本的、面向列的数据库,能够对大型数据提供随机、实时的读写访问。

    1. 特点
  1. 横向扩展性强
  2. 支持很高的写吞吐
  3. 有良好的随机读性能
  4. 高可用性,故障可恢复性
  5. 错误隔离性。一个结点的错误不会影响到其它结点,磁盘故障只会对相应的小规模的数据产生影响。
  6. 可在廉价PC Server搭建大规模结构化存储集群
    1. 适用场景和实例
  • 场景
  1. 大表,数十亿行、数百万列的数据表
  2. 大数据量存储,数据需要长久保存,且量会持续增长到比较大的场景,能达到TB或PB的数据
  3. 瞬间写入量很大,数据库不好支撑或需要很高成本支撑的场景
  4. 查询场景简单,检索条件较少
  • 实例
  1. Facebook:新实时消息系统(Social Inbox),包括email、IM、SMS
  2. 淘宝:购买历史记录、实时日志收集、数据实时监控、广告效果实时反馈等
    1. 与Hadoop其它系统关系

Hadoop起源于开源的网络搜索引擎Apache Nutch。狭义的讲,Hadoop主要指MapReduce和HDFS,但是,Hadoop这个名字也用于一组相关项目的统称,这些相关项目都是用这个基础平台进行分布式计算和海量数据处理。其关系如下:

HBase位于结构化存储层,围绕HBase,各部件对HBase的支持情况:

Hadoop部件

作用

HDFS

高可靠的底层存储支持

MapReduce

高性能的计算能力

Zookeeper

稳定服务和failover机制

Pig&Hive

高层语言支持,便于数据统计

Sqoop

提供RDBMS数据导入,便于传统数据库向HBase迁移

 

    1. 运行模式

HBase有两种运行模式:单机模式和分布式模式,其中分布式模式又分为伪分布式模式和完全分布式模式。

  1. 单机模式

使用本地文件系统;所有的服务和zooKeeper都运作在一个JVM中。

  1. 分布式模式

 使用 Hadoop Distributed File System (HDFS)。

伪分布式模式进程运行在一台机器上,但不是一个JVM。

完全分布式模式服务被分布在各个节点上。

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

   分布式的HBase系统应用架构如下:

  • Zookeeper

为客户端提供访问入口,存贮所有Region的寻址入口;

选举HBase集群中的master,确保任何时候,只有一个master;

实时监控Region Server的状态,将Region server的上线和下线信息实时通知给Master;

存储Hbase的schema,包括有哪些table,每个table有哪些column family。

  • HBase

Hbase的服务器体系结构遵从简单的主从服务器架构,由Hregion服务器群和HBase Master主服务器构成。在整个架构中负责数据的读写、调度等。

Master主要负责Table和Region的管理工作;RegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据

  • Hadoop HDFS

Hadoop文件系统也是主从架构,由唯一一个目录节点和数个数据节点组成。在整个架构中负责数据的物理存储。

  • Client

Client包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,比如regione的位置信息。

client访问hbase上数据的过程并不需要master参与(寻址访问zookeeper和region server,数据读写访问regione server),master仅仅维护者table和region的元数据信息,负载很低。

    1. HBase
      1. 数据模型

HBase以表的方式存储数据。表是由行和列构成的,列从属于某一个列族(column family)。行和列的交叉点称之为cell,cell是版本化的。cell的内容就是数据,cell中的数据是没有类型的,全部是字节码形式存贮,是不可分割的字节数组。

        1. 逻辑视图

下表展现一个名为webtable表的逻辑视图,包含两个列族(column family):contents和anchor。anchor有两个列 (anchor:cssnsi.com, anchor:my.look.ca),contents仅有一列(contents:html)。

Row Key

Time Stamp

ColumnFamily contents

ColumnFamily anchor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值