`
bit1129
  • 浏览: 1069598 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【HBase一】HBase概述

 
阅读更多

 

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
  • 每一列由一个线程来处理-查询的并发处理(列出通常来说不会很大)
  • 数据类型一致,数据特征相似-高效压缩

 

 

 

 

  • 大小: 73.7 KB
  • 大小: 284.3 KB
  • 大小: 225.2 KB
  • 大小: 235.4 KB
分享到:
评论

相关推荐

    Hbase权威指南(HBase: The Definitive Guide)

    #### 二、HBase概述 - **HBase的概念**:HBase是基于Hadoop的一个分布式、可扩展的列族数据库,它的设计灵感来源于Google的Bigtable论文。 - **HBase的历史**:HBase起源于一个叫做Hadoop的项目中的子项目,最初是...

    HBase官方文档中文版-HBase手册中文版

    一、HBase概述 HBase设计目标是提供大规模数据的实时读写能力,它运行在Hadoop之上,利用HDFS作为其底层存储系统。HBase的数据模型基于稀疏、多维度、排序的映射表,其中行键、列族、列限定符和时间戳构成数据的唯一...

    hbase安装与使用

    HBase 是一款构建于 Hadoop 之上的分布式、可扩展的大规模数据存储系统。它提供了类似 Google BigTable 的功能特性,非常适合处理海量数据和高并发读写需求的应用场景。本文主要介绍如何在 Linux 环境下安装和配置 ...

    HBase学习利器:HBase实战

    《HBase in Action》是一本由Nick Dimiduk和Amandeep Khurana撰写的关于HBase实践的书籍,该书旨在帮助读者深入理解HBase的工作原理及其实战应用。 **章节概述**: - **第一部分:HBase基础** - **第1章:介绍...

    HBase开启审计日志

    #### 一、概述 HBase是一款分布式列式存储系统,基于Google的Bigtable论文实现。它具有高可靠性、高性能、面向列、可伸缩的特点,非常适合处理海量数据。在大数据领域,HBase被广泛用于实时读/写访问以及随机查询的...

    HBase概述——HBase的存储模型.pdf

    《HBase概述——HBase的存储模型》这篇文章深入解析了HBase的核心存储机制,即LSM树(Log-Structured Merge Tree)。LSM树是一种优化的存储结构,它旨在解决大数据场景下的高性能写入和读取需求。在HBase中,LSM树的...

    Hbase

    **HBase 概述** HBase 是一个分布式的、基于列族的开源数据库,它运行在 Apache Hadoop 文件系统(HDFS)之上。HBase 提供了对大规模数据集的实时读写访问,是大数据领域的重要组件。它设计用于处理PB级别的数据,...

    HBase技术介绍.docx

    #### 一、HBase概述 **HBase**,全称为Hadoop Database,是一款构建在Hadoop之上、面向列的分布式数据库系统。它具备高可靠性、高性能和可扩展性等特点,能够在成本相对低廉的硬件设备上构建大规模的数据存储集群。...

    hbase2.5.6最新版本下载

    一、HBase概述 1. 分布式架构:HBase基于Google的Bigtable设计理念,构建于Hadoop之上,充分利用了HDFS(Hadoop分布式文件系统)的存储能力,为大规模数据提供高并发访问。 2. 列族存储:与传统关系型数据库不同,...

    搭建HBase完全分布式数据库

    一、HBase数据库概述: HBase是Google BigTable的一种开源实现,与Hadoop生态系统紧密集成。它是一个分布式、可扩展、非关系型的数据库,能够处理大量稀疏数据集。HBase提供了实时查询数据的能力,支持数据的随机...

    Hbase个人总结

    ### HBase概述与基础知识 #### 一、HBase与OLTP及OLAP 在大数据处理领域,企业常常面临着两种不同的数据处理需求:联机事务处理(OLTP)和联机分析处理(OLAP)。OLTP通常涉及频繁的更新、插入和删除操作,而OLAP...

    geomesa-hbase安装包

    一、Geomesa-HBase概述 Geomesa-HBase是Apache Geomesa项目的一个组件,它允许用户在HBase之上存储和查询地理空间数据。Geomesa-HBase利用了HBase的分布式特性,实现了快速的地理空间索引和查询。其核心特性包括:...

    HBase_SI_--_实现HBase_ACID的理论

    #### 二、HBase_SI概述 HBase_SI是一种旨在为HBase提供ACID特性的框架。ACID即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这些特性确保了数据操作的完整性和一致性,是构建...

    Hbase与zookeeper文档

    【HBase概述】 HBase,全称为Hadoop Database,是一个基于Hadoop生态系统的分布式数据库,设计目标是为了处理大规模数据集。它提供了低延迟的数据访问,支持海量数据存储,并且是高度可扩展的。HBase的设计灵感来源...

    hbase-1.3.1-bin.zip

    1. **HBase概述** - HBase是一种NoSQL数据库,它基于谷歌的Bigtable模型设计,适用于非结构化和半结构化数据。 - 它是开源的,运行在Hadoop文件系统(HDFS)之上,提供高可靠性和高性能的数据存储。 2. **HBase...

    hbase使用所需资源

    1. **HBase概述**: HBase是一个开源的Apache项目,它是为处理大规模数据而设计的。HBase提供了实时读写能力,适用于大数据分析和实时数据检索场景。它的设计目标是支持PB级的数据存储,并能够水平扩展以处理海量...

    HBASE基础应用的介绍

    #### 一、HBase概述 HBase是Apache Hadoop生态系统中的一个重要的组件,它提供了一种分布式、可扩展的大规模数据存储解决方案。HBase基于Google Bigtable论文的思想实现,旨在为海量结构化或半结构化数据提供高效的...

    Hbase 官方中文文档

    HBase官方中文文档概述了Apache HBase TM的基本概念、配置方法、升级策略、shell使用、数据模型、架构设计、安全机制、API接口、性能调优以及故障排除等多方面的知识。HBase是一个开源的非关系型分布式数据库(NoSQL...

Global site tag (gtag.js) - Google Analytics