面向列的分布式数据库Hbase简介

  Hbase 是一个面向列的分布式数据库.Hbase不是一个关系型数据库,其设计目标是用来解决关系型数据库在海量数据处理中理论和实现的不足和局限.传统的关系型数据库上世纪七八十年代为交易系统建立 ,以满足数据一致性(ACID)为目标,并没有考虑数据规模扩大时的拓展性,和单点系统失效时的可靠性.虽然经过技术的发展,实现了对关系数据库的弥补(并行数据库),但由于理论和实现的约束,拓展从来没超过40个节点的服务器.而Hbase从一开始就为TB和PB级别的海量数据的高速存储而设计,这要求数据能够被分配在数千台普通服务器上,并能够被大量用户并发访问.

  Hbase自2008年商用以来,已经被越来越多的在线服务公司所采用.其中最大的是facebook新上线整合EMAIL  SNS  CHAT 和短消息的在线即时通信系统.

分布式数据库HBase的特点和优势.

高可拓展性

  HBase是真正意义上的线性水平拓展.数据累积到一定程度,HBase 就会对数据进行水平切分并分布到多台服务器上,在大量用户访问时,访问请求也被分配到不同的服务器上.虽然每台普通服务器的服务能力有限,但是数千台普通服务器结合到一起能够提供极高性能的访问能力.其次HBase设计了高效的缓存机制,有效提高了访问的命中率和访问性能.

高性能

  HBase 的设计目的之一就是支持高并发用户数的高速读写访问.这是通过两方面来实现的:首先数据行被水平切分到不同服务器上,在大量用户访问时,访问请求也被分布到不同的服务器上,虽然每台服务器的服务能力有限,但是数千台服务器汇总起来形成了极高的访问能力.其次,Hbase设计了高效的缓存机制,提高了访问的命中率,提高了访问性能.

高可用性

  HBase建立在hdfs之上.hdfs提供数据自动复制和容错的功能.HBase的日志和数据都存放在hdfs之上,即使在读写过程中当前服务器出现故障(硬盘,内存,网络等故障),日志也不会丢失,数据都可以从日志中恢复过来.

  HBase会自动分配其他服务器接管并恢复这些数据.因此一旦成功写入数据,数据就会保证被持久化并冗余复制,数据的高可用性得到保证.

数据模型及其特点

  HBase是一个面向列的,稀疏的,分布式的,持久化存储的多维排序映射表.表的索引是行关键字,列簇名,列关键字以及时间戳.表中的每个值都是一个未经解析的字节数组.

面向列:指的是同一个列簇中的所有数据都存储在一个文件里,从而在磁盘读写时有效降低磁盘I/O开销.并且,由于类似数据存放在一起,提高了压缩比,经过压缩的数据通常达到原来的1/3到1/5,极大的节省了存储空间.

多维表:这是对传统二维表的极大扩充.传统的二维表有两维,行和列.列在设计表结构时必须预先固定,行可以动态增加,也就是说只有一维可以动态改变.

HBase的多维表有四维,列簇需要在设计表结构时预先设定,行,列,时间维都可以动态增加,也就是说有三个维度可以动态改变.这种结构非常适合来表述有嵌套关系的数据.另外动态增删列的能力也给很多业务带来便利,特别是这些业务在不停的演化,需要的列字段也在不停的增加,多维表结构可以随时进行改变以适应业务发展需求.

稀疏表:由于多维表的列可以动态增加,必然导致相同行不同列数据大部分为空,也就是说这个表是稀疏的 .不像传统关系型数据库,HBase不存放空值,只存放有内容的表格单元(cell),因此可以支持超大稀疏表,而不带来任何开销,这对传统的表结构也带来的观念上的大转变.

时间: 2024-10-10 00:53:25

面向列的分布式数据库Hbase简介的相关文章

分布式数据库hbase详解

新霸哥注意到了在人类随着计算机技术的发展,数据的存储量发生了很大的变化,可以用海量来形容,同时,存储的数据类型也是有多种多样的,网页,图片,视频,音频,电子邮件等等,所以在这中情况下以谷歌旗下的BigTable为代表的新型数据库产生并且迅速发展.Hbase就是BigTable的开源实现,下面新霸哥将详细的为你揭晓HBase相关知识以及相关应用. 互联网时代对数据库的要求和传统的还是有区别的 其中比较突出的一点就是数据量的问题,在数据量非常庞大的今天关系型数据可能无法实现存储并处理海量数据,但是分

分布式数据库HBase安装与使用(shell+Java API)

本指南介绍了HBase,详细指导大家安装配置HBase及其使用.本教程在Ubuntu14.04下测试通过. 一.HBase介绍 HBase是一个分布式的.面向列的开源数据库,源于Google的一篇论文<BigTable:一个结构化数据的分布式存储系统>.HBase以表的形式存储数据,表有行和列组成,列划分为若干个列族/列簇(column family).欲了解HBase的官方资讯,请访问HBase官方网站. HBase的运行有三种模式:单机模式.伪分布式模式.分布式模式. 单机模式:在一台计算

分布式数据库 HBase

HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统:Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数

《大数据技术应用与原理》第二版-第四章分布式数据库HBase

4.1概述 HBase是一个高可靠.高性能.面向列.可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化松散数据. HBase与传统数据库的区别 数据类型上的区别,它把数据存储为未经解释的字符串 数据操作,没有像关系型数据库那样的复杂数据操作,通常采用单表的主键查询. 存储模式,关系型数据库是采用行进行存储的,但是HBase是采用列存储的. 数据索引,HBase只有一个索引,就是行键. 数据维护,HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新

HBase基础知识,面向列的实时分布式数据库

Hbase是运行在Hadoop上的NoSQL数据库,它是一个分布式的和可扩展的大数据仓库,也就是说HBase能够利用HDFS的分布式处理模式,并从Hadoop的MapReduce程序模型中获益. 1.HBase定义 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之

1.Hbase简介

1. Hbase简介 1.1. 什么是hbase(面向列) HBASE是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模 结构化存储集群. HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成 的大型数据. HBASE是Google Bigtable的开源实现,但是也有很多不同之处.比如:Google Bigtable利用GFS作为其文件存储系统, HBASE利用Hadoop

面向行与面向列

最近看到H5.H2.HBase的,以为有啥关联,后来知道H5->HTML5(很多人在吐槽这个缩写), H2 -> 一个内存数据库, HBase是一个分布式的.面向列的开源数据库. -.- 原谅我着急的智商,以我对数据库的了(shui)解(ping),我之前根本不知道”基于行“与”面向列“这样的概念..只知道SELECT\UPDATE\DELETE... 好吧,好好搜搜,找到这么一篇(H2与HBase)面向行or面向列的存储模型? 数据库的内部结构不敢多谈,因为不清楚.-.- 大体上是采用了B-

HBase 系列(一)—— HBase 简介

一.Hadoop的局限 HBase 是一个构建在 Hadoop 文件系统之上的面向列的数据库管理系统. 要想明白为什么产生 HBase,就需要先了解一下 Hadoop 存在的限制?Hadoop 可以通过 HDFS 来存储结构化.半结构甚至非结构化的数据,它是传统数据库的补充,是海量数据存储的最佳方法,它针对大文件的存储,批量访问和流式访问都做了优化,同时也通过多副本解决了容灾问题. 但是 Hadoop 的缺陷在于它只能执行批处理,并且只能以顺序方式访问数据,这意味着即使是最简单的工作,也必须搜索

(一)分布式数据库tidb-简介

因为数据磁盘问题,最近进行了更换库,所以决定写关于这方面的专题的博客,博客信息参考的官方文档. 一.分布式数据库使用背景 随着互联网的飞速发展,业务量可能在短短的时间内爆发式地增长,对应的数据量可能快速地从几百 GB 涨到几百个 TB,传统的单机数据库提供的服务,在系统的可扩展性.性价比方面已经不再适用.比如MySQL数据库,缺点是没法做到水平扩展.MySQL 要想能做到水平扩展,唯一的方法就业务层的分库分表或者使用中间件等方案.但是,这些中间层方案也有很大局限性,执行计划不是最优,分布式事务,