1. Hadoop生态系统
- 底层是存储(HDFS),上层是计算框架
- 从图中可以看出,Hive、Pig和Mahout是基于MapReduce的计算框架,分别用于结构化数据的即席查询,数据流处理以及基于MapReduce的机器学习算法集
- HBase依赖于HDFS,HBase这个圆角矩形框在高度上= MapReduce + 基于MapReduce的计算框架,这是不是说,HBase一部分是跟MapReduce平级,属于基础框架级,同时又提供了应用级的能力
2. 什么是HBase
- HBase是基于Apache Hadoop的面向列的NoSQL数据库,是Google的BigTable的开源实现。
- HBase是一个针对结构化数据的开源的、多版本的、可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。
- HBase提供了对大规模数据的随机、实时读写访问
- HBase的目标是存储并处理大型的数据,更具体地说仅用普通的硬件配置,能够处理上千亿的行和几百万的列所组成的超大型数据库。
- HBase是一个开源的、分布式的、多版本的、面向列的存储模型。可以直接使用本地文件系统也可使用Hadoop的HDFS文件存储系统。
- HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。
- HBase具有"向下提供存储,向上提供运算"的特点,这跟上图就对应起来了,比如Hive on HBase,即HBase为Hive计算提供输入数据
- HBase数据模型:Schema-->Table-->Column Family-->Column-->RowKey-->TimeStamp-->Value
- 从逻辑上讲,HBase将数据按照表、行和列进行存储
3. HBase系统架构图
4. HBase与HDFS对比
- HBase和HDFS都是良好的容错性和扩展性,都可以扩展到成百上千个节点
- HDFS适用于读取的整存整取,即批处理场景
- HBase适合数据的随机读取,而HDFS不能用于数据随机读取,只用于顺序扫描所有数据
- HDFS不适合增量数据处理,而HBase适合((只处理新增数据)
- HDFS不适合增量数据更新(即写操作),而HBase则适合百万级并发写操作
5. HBase表的特点
- 海量存储: 一个表可以有数十亿行,上百万列
- 行无固定模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列。这个可排序的主键是rowKey吗?
- 面向列: 面向列(族)的存储和权限控制,列(族)独立检索
- 空列: 对于空(null)的列,并不占用存储空间,表可以设计的非常稀疏
- 数据带有多版本: 每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;
- 数据类型单一: Hbase中的数据都是字符串,没有类型,字符串转换成其他类型需要自己实现
6.行存储 vs 列存储
6.1 行存储
行存储的特点:
- 数据是按行存储的
- 没有索引的查询使用大量I/O(因为首先要扫描行,再扫描列。因为行是离散的所以,需要继续IO定位行)
- 建立索引和物化视图需要花费大量时间和资源
- 面向查询的需求,数据库必须被大量膨胀才能满足性能要求
6.2 列存储
列存储的特点:
- 数据是按列存储-每一列单独存放
- 数据即是索引
- 仅需要访问查询涉及的列-大量降低系统I/O
- 每一列由一个线程来处理-查询的并发处理(列出通常来说不会很大)
- 数据类型一致,数据特征相似-高效压缩
相关推荐
#### 二、HBase概述 - **HBase的概念**:HBase是基于Hadoop的一个分布式、可扩展的列族数据库,它的设计灵感来源于Google的Bigtable论文。 - **HBase的历史**:HBase起源于一个叫做Hadoop的项目中的子项目,最初是...
一、HBase概述 HBase设计目标是提供大规模数据的实时读写能力,它运行在Hadoop之上,利用HDFS作为其底层存储系统。HBase的数据模型基于稀疏、多维度、排序的映射表,其中行键、列族、列限定符和时间戳构成数据的唯一...
HBase 是一款构建于 Hadoop 之上的分布式、可扩展的大规模数据存储系统。它提供了类似 Google BigTable 的功能特性,非常适合处理海量数据和高并发读写需求的应用场景。本文主要介绍如何在 Linux 环境下安装和配置 ...
《HBase in Action》是一本由Nick Dimiduk和Amandeep Khurana撰写的关于HBase实践的书籍,该书旨在帮助读者深入理解HBase的工作原理及其实战应用。 **章节概述**: - **第一部分:HBase基础** - **第1章:介绍...
#### 一、概述 HBase是一款分布式列式存储系统,基于Google的Bigtable论文实现。它具有高可靠性、高性能、面向列、可伸缩的特点,非常适合处理海量数据。在大数据领域,HBase被广泛用于实时读/写访问以及随机查询的...
《HBase概述——HBase的存储模型》这篇文章深入解析了HBase的核心存储机制,即LSM树(Log-Structured Merge Tree)。LSM树是一种优化的存储结构,它旨在解决大数据场景下的高性能写入和读取需求。在HBase中,LSM树的...
**HBase 概述** HBase 是一个分布式的、基于列族的开源数据库,它运行在 Apache Hadoop 文件系统(HDFS)之上。HBase 提供了对大规模数据集的实时读写访问,是大数据领域的重要组件。它设计用于处理PB级别的数据,...
#### 一、HBase概述 **HBase**,全称为Hadoop Database,是一款构建在Hadoop之上、面向列的分布式数据库系统。它具备高可靠性、高性能和可扩展性等特点,能够在成本相对低廉的硬件设备上构建大规模的数据存储集群。...
一、HBase概述 1. 分布式架构:HBase基于Google的Bigtable设计理念,构建于Hadoop之上,充分利用了HDFS(Hadoop分布式文件系统)的存储能力,为大规模数据提供高并发访问。 2. 列族存储:与传统关系型数据库不同,...
一、HBase数据库概述: HBase是Google BigTable的一种开源实现,与Hadoop生态系统紧密集成。它是一个分布式、可扩展、非关系型的数据库,能够处理大量稀疏数据集。HBase提供了实时查询数据的能力,支持数据的随机...
### HBase概述与基础知识 #### 一、HBase与OLTP及OLAP 在大数据处理领域,企业常常面临着两种不同的数据处理需求:联机事务处理(OLTP)和联机分析处理(OLAP)。OLTP通常涉及频繁的更新、插入和删除操作,而OLAP...
一、Geomesa-HBase概述 Geomesa-HBase是Apache Geomesa项目的一个组件,它允许用户在HBase之上存储和查询地理空间数据。Geomesa-HBase利用了HBase的分布式特性,实现了快速的地理空间索引和查询。其核心特性包括:...
#### 二、HBase_SI概述 HBase_SI是一种旨在为HBase提供ACID特性的框架。ACID即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这些特性确保了数据操作的完整性和一致性,是构建...
【HBase概述】 HBase,全称为Hadoop Database,是一个基于Hadoop生态系统的分布式数据库,设计目标是为了处理大规模数据集。它提供了低延迟的数据访问,支持海量数据存储,并且是高度可扩展的。HBase的设计灵感来源...
1. **HBase概述** - HBase是一种NoSQL数据库,它基于谷歌的Bigtable模型设计,适用于非结构化和半结构化数据。 - 它是开源的,运行在Hadoop文件系统(HDFS)之上,提供高可靠性和高性能的数据存储。 2. **HBase...
1. **HBase概述**: HBase是一个开源的Apache项目,它是为处理大规模数据而设计的。HBase提供了实时读写能力,适用于大数据分析和实时数据检索场景。它的设计目标是支持PB级的数据存储,并能够水平扩展以处理海量...
#### 一、HBase概述 HBase是Apache Hadoop生态系统中的一个重要的组件,它提供了一种分布式、可扩展的大规模数据存储解决方案。HBase基于Google Bigtable论文的思想实现,旨在为海量结构化或半结构化数据提供高效的...
HBase官方中文文档概述了Apache HBase TM的基本概念、配置方法、升级策略、shell使用、数据模型、架构设计、安全机制、API接口、性能调优以及故障排除等多方面的知识。HBase是一个开源的非关系型分布式数据库(NoSQL...