HBase--技术文档--基本概念--《快速扫盲》

官网

Apache HBase -- Apache HBase™ Home

阿里云hbase

云数据库HBase_大数据存储_订单风控_数据库-阿里云

云数据库 HBase-阿里云帮助中心

基本概念

HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。它基于Hadoop,采用列式存储方式,可以提供实时计算和分布式访问。HBase的数据模型是稀疏排序映射表,其中键由行关键字、列关键字和时间戳构成。HBase的目标是存储并处理大型数据、支持对大规模数据的随机和实时读写访问。即使在普通的硬件配置上,HBase也能够处理上亿的行和几百万的列所组成的超大型数据库。

Hadoop

Hadoop是一个能够对大量数据进行分布式处理的软件框架,它是专为离线和大规模数据分析而设计的。Hadoop通常被用于处理半结构化和非结构化数据,相比关系型数据库,它在处理这些类型的数据时具有更好的性能和灵活性。Hadoop的核心设计是HDFS和MapReduce。HDFS提供了在集群服务器上分布式存储文件的能力,而MapReduce提供了在集群服务器上分布式处理数据的能力。因此,Hadoop非常适合处理海量数据。

HDFS和MapReduce

HDFS(Hadoop Distributed File System)是可扩展、容错、高性能的分布式文件系统,异步复制,一次写入多次读取,主要负责存储。MapReduce为分布式计算框架,包含map(映射)和reduce(归约)过程,负责在HDFS上进行计算。

稀疏排序映射表

HBase的稀疏排序映射表是一种数据模型,它类似于BigTable的数据模型。在HBase中,数据以键值对的形式存储,并且这些键值对按照键的顺序进行排列和存储。这种数据模型是稀疏的,因为并不是所有的列都会在每个行中出现,也就是说,每个行可以具有不同的列。同时,这种数据模型也是排序的,因为键值对按照键进行排序。这种数据模型使得HBase能够高效地处理大量的数据,并且能够快速地执行随机读写操作。

每个值是一个未经解释的字符串,没有数据类型

表中存储数据,每一行都有一个可排序的行键和任意多的列

表:HBase采用表来组织数据,表是由行和列组成的,列划分为若干个列族

行:每个HBase表都由若干行组成,每个行由行键(row key)来标识

列族:一个HBase表备份组成许多"列族"(Column Family)的集合,他是基本的访问控制单元

列限定符:列族里的数据通过列限定符(或例)来定位

单元格:在HBase表中,通过行、列族和列限定符确定一个"单元格"(cell),单元格中存储的数据没有数据类型,总被视为字节数组byte[]

时间戳:每个单元格都保存着一份数据的多个版本,这些版本采用时间戳进行索引

HBase使用场景

HBase的使用场景包括以下几种:

  1. 平台类:HBase可以作为数据存储,捕获来自于各种数据源的增量数据。这种场景下存放的往往是平台的数据,有时候甚至是无业务含义的,作为平台的底层存储使用。
  2. 内容服务类:这类主要面向各种业务系统,将数据直接存放到HBase中,再读取。这种场景需要支持千万级别的并发访问及读取,并需要解决服务质量的问题。这种应用场景通常业务简单,不需要关系型数据库中的很多特性。
  3. 信息展示类:通过HBase的高存储,高吞吐等特性,可以将人们感兴趣的信息快速展现出来,例如阿里巴巴的天猫双十一大屏。

此外,对于需要存储大量结构化或非结构化数据,数据量越来越大,传统数据库无法满足需求的情况,HBase也是一个很好的选择。

HBase的使用原因

HBase的使用原因主要有以下几点:

  1. HBase是一个构建在HDFS上的分布式列存储系统,具有高可靠、高性能、分布式和面向列的动态模式等优点。
  2. HBase基于Google BigTable模型开发,具有典型的key/value系统特点,能够提供大规模数据的随机、实时读写访问。
  3. HBase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。
  4. HBase与传统数据库相比,具有线性扩展、数据存储在HDFS上、备份机制健全和通过zookeeper协调查找数据等优势,能够解决传统数据库面临的问题,例如数据量很大的时候无法存储、没有很好的备份机制、数据达到一定数量开始缓慢等。

因此,HBase是一个适合于处理大量结构化或非结构化数据,且需要高可靠、高性能、分布式和动态模式的数据库系统

HBase的同类产品列举

HBase的同类型产品包括以下几种:

  1. CouchDB:一个开源的面向文档的数据库系统,采用Erlang语言编写,与HBase类似,也支持面向列的存储和二级索引。
  2. Cassandra:一个开源的、高度可分布的、面向列的数据库系统,最初由Facebook开发,用于处理实时数据。
  3. Hypertable:一个开源的、高性能的、面向列的数据库系统,采用C++语言编写,与HBase类似,适用于大规模数据存储和实时数据处理。
  4. Accumulo:一个开源的、可分布的、面向列的键值存储系统,由美国国家安全局(NSA)开发,具有高度安全性和高性能。

这些产品与HBase在某些方面具有相似之处,如面向列的存储、高性能、分布式等,但各自也有其独特的特点和适用场景。

Hbase同类型产品特性与Hbase对比-技术选型帮助

与CouchDB相比,HBase在数据模型和查询语言方面有所不同。HBase是基于列的存储,而CouchDB是基于文档的存储,支持更丰富的数据结构。此外,HBase的查询语言相对简单,而CouchDB具有更强大的查询功能。

与Cassandra相比,HBase和Cassandra都是面向列的数据库系统,但它们在数据模型、查询语言和性能方面有所不同。HBase支持随机访问和实时读取,而Cassandra更适合于大量数据的批处理。此外,HBase支持二级索引,而Cassandra具有自己的索引机制。

与Hypertable相比,HBase和Hypertable都是面向列的数据库系统,但它们在实现语言、性能和扩展性方面有所不同。Hypertable采用C++语言编写,而HBase采用Java语言编写。此外,Hypertable在性能和扩展性方面可能具有优势,适用于大规模数据存储和实时数据处理。

与Accumulo相比,HBase和Accumulo都是面向列的键值存储系统,但它们在实现语言、数据模型和安全性方面有所不同。Accumulo采用C++语言编写,而HBase采用Java语言编写。此外,Accumulo具有更高的安全性,由美国国家安全局开发,适用于高度安全性的应用场景。

综上所述,HBase和同类型产品在数据模型、性能、扩展性、数据一致性、数据存储和处理等方面有所不同,需要根据具体的业务需求进行评估和选择。

Hbase版本更新以及特性

HBase是一个分布式、可扩展的、面向列的数据库系统,是Apache Hadoop生态系统的一部分。随着Hadoop和Hadoop生态系统的不断发展,HBase也在不断更新和改进。

以下是一些HBase版本的主要更新和特性:

  1. HBase 0.98.0:这个版本引入了一种新的API,即HBase Shell,以及一些新的表选项。此外,这个版本还改进了性能和稳定性,包括对大表的支持和对二级索引的改进。
  2. HBase 1.0:这个版本引入了一种新的数据模型,即面向列的存储。此外,该版本还提供了新的API、改进的性能和稳定性、更好的大表支持以及对非关系型数据的支持。
  3. HBase 2.0:这个版本引入了全局版本控制的特性,允许在整个表中设置版本号。此外,该版本还增加了对ACID事务的支持、改进的湖到货(Lake-to-Lake Solution)集成以及对多租户的支持。
  4. HBase 2.1:这个版本主要解决了在HBase 2.0版本中引入的ACID事务的问题,并进一步提高了性能和稳定性。
  5. HBase 2.2:这个版本增加了对轻量级事务的支持、改进的数据管理能力以及对HBase经济学仪表板(HBase Economy Dashboard)的支持。
  6. HBase 2.3:这个版本引入了一种新的存储格式,即HFilev5,以及一些新的特性,如数据块压缩、时间戳增量和虚拟列族。
  7. HBase 3.0:这个版本主要改进了性能和稳定性,并增加了一些新的特性,如全局读一致性、对压缩和加密的改进以及对本地客户端(Native Client)的支持。

这些更新和特性反映了HBase不断发展和改进的过程,也为用户提供了更好的性能、稳定性和功能。

相关推荐
play_big_knife17 分钟前
鸿蒙项目云捐助第二十八讲云捐助项目首页组件云数据库加载轮播图
数据库·华为·harmonyos·鸿蒙·云开发·鸿蒙开发·鸿蒙技术
qq_321665331 小时前
mysql 数据库迁移到达梦数据库
数据库·mysql
Hello.Reader2 小时前
Redis大Key问题全解析
数据库·redis·bootstrap
靖顺4 小时前
【OceanBase 诊断调优】—— packet fly cost too much time 的根因分析
数据库·oceanbase
liuxin334455664 小时前
学籍管理系统:实现教育管理现代化
java·开发语言·前端·数据库·安全
神秘打工猴6 小时前
Flink 集群有哪些⻆⾊?各⾃有什么作⽤?
大数据·flink
小刘鸭!6 小时前
Flink的三种时间语义
大数据·flink
天冬忘忧6 小时前
Flink优化----FlinkSQL 调优
大数据·sql·flink
LinkTime_Cloud6 小时前
GitLab 将停止为中国区用户提供服务,60天迁移期如何应对? | LeetTalk Daily
大数据·运维·gitlab
寒暄喆意7 小时前
智慧农业物联网传感器:开启农业新时代
大数据·人工智能·科技·物联网