为了加速理解HBase的一些概念,翻译了这篇文章《Understanding HBase and BigTable》(HBase官方文档推荐阅读文章)。...学习Hbase(Google BigTable的开源实现)最困难的是理解它的实际概念。...阅读之后,你应该能够更好地判断,什么时候要使用Hbase,什么时候该更好地使用“传统”数据库。 一切都在术语中 幸运的是,Google的BigTable论文清楚地解释了BigTable究竟是什么。...有序 与大多数Map实现不同,在Hbase / BigTable中,键/值对按严格的字母顺序保存。...在这种常见情况下,Hbase / BigTable将返回最新版本(具有最高时间戳的版本),因为它以时间逆序存储这些版本数据。
在学习HBase(Google BigTable 的开源实现)的时候,我们面临的最为困难的地方就是需要你重构你的思路来理解 BigTable 的概念。...在 Hadoop wiki的 HBase Architecture 页面中指出: HBase 使用的数据模型与 Bigtable 非常相似。...Map HBase/BigTable 的核心是 Map。...分布式 HBase 和 BigTable 建立在分布式文件系统上,因此底层文件存储分布在不同的计算机上。...在这种常见情况下,HBase/BigTable 将返回最新版本(时间戳最高的版本)的数据。如果应用程序查询给定时间戳版本的数据,HBase 将返回时间戳小于或等于我们提供的时间戳的单元格数据。
HBase 可伸缩架构 3. HBase 可扩展数据模型 4. HBase高性能存储 1....两种数据库 关系数据库(RDBMS)缺点: 糟糕的 海量数据处理能力、僵硬的设计约束 从 Google 的 BigTable 开始,一系列可以进行海量数据存储与访问的数据库被设计出来,NoSQL 这一概念被提了出来...HBase 可伸缩架构 3. HBase 可扩展数据模型 许多 NoSQL 数据库使用的 列族(ColumnFamily) 设计就是其中一个解决方案。...列族最早在 Google 的 BigTable 中使用,这是一种面向列族的稀疏矩阵存储格式,如下图所示。...HBase高性能存储 LSM 树结构,在内存中 写操作, 读操作,先从内存中搜索,没找到则去磁盘找 极大减少磁盘访问次数
这些应用对Bigtable的侧重点不同,但是他们都是海量数据和实时性的应用。尽管需求变化多端,Bigtable很好的提供了一个灵活多变,高性能额解决方案。...最后一点,调整Bigtable的模式参数能让客户端动态控制是从内存还是硬盘提供数据。 2. DATA MODEL 一个Bigtable 集群是一系列运行Bigtable软件的进程。...Bigtable支持不同的特性让用户能够以复杂多变的方式操作数据。首先,Bigtable支持单行事务,这个特性使得对单行数据可以执行原子的读写序列。...Bigtable目前还不迟滞跨行事务,尽管其给客户机提供了一个接口可以跨行批量写入。第二,Bigtable允许单元格充当整数计数器。...;存储Bigtable模式(见5.5)。
Google's BigTable 原理 (翻译) 题记:google 的成功除了一个个出色的创意外,还因为有 Jeff Dean 这样的软件架构天才。...首先,BigTable 从 2004 年初就开始研发了,到现在为止已经用了将近8个月。...根据Google的一贯做法,内部开发的BigTable是为跑在廉价的PC机上设计的。BigTable 让Google在提供新服务时的运行成本降低,最大限度地利用了计算能力。...BigTable 作为服务运行。 好像:每个服务比如: maps 和 search history 历史搜索记录都有他们自己的集群运行 BigTable。...他们还考虑运行一个全局的 BigTable 系统,但这需要比较公平的分割资源和计算时间。
Bigtable被称为谷歌的三驾马车之一,主要面向谷歌的结构化数据存储,其思想被许多nosql数据库继承。...Bigtable建立于GFS和Chubby之上,而为MapReduce服务,可以说是承上启下。...时间戳 时间戳由Bigtable自动生成或者Client指定,不同版本按照增序排列,便于取出新数据。...Bigtable会定期地进行major compaction彻底抹杀这些数据。...云时代下的Bigtable 估计指的是后来2012OSDI的Spanner。
那么不得不提及谷歌的第三驾马车“BigTable”。 背景?...上图是摘自 BigTable 的论文,老图配新曲,在此处主要用来阐述 BigTable 产生的其中一个背景,从中我们能够得出如下公式。...Bigtable 是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的 PB 级的数据。 说清楚 BigTable 存储啥样子?...看透彻 BigTable 存储啥样子?一张图(一瓢饮) ?...一段话(一箪食)+ 一张图(一瓢饮) = BigTable(足矣)。
谷歌三件套 - Bigtable 引言 如标题所言,这一篇文章简单介绍BigTable,其实个人更建议看LevelDB这款开源数据库,因为这数据库也是Bigtable的作者 JeffreyDean 设计的...在本文中,我们描述了 Bigtable 提供的简单数据模型,它为客户提供对数据布局和格式的动态控制,我们描述了 Bigtable 的设计和实现。...Bigtable将数据统统看成无意义的字节串,客户端需要将结构化和非结构化数据串行化再存入Bigtable。...首先看看BigTable和GFS 是什么关系呢?...Bigtable集群 BigTable集群通过三个层级配套组件完成工作。
引言 如标题所言,这一篇文章简单介绍BigTable,其实个人更建议看LevelDB这款开源数据库,因为这数据库也是Bigtable的作者 JeffreyDean 设计的,很多内容不能说像简直就是一模一样...在本文中,我们描述了 Bigtable 提供的简单数据模型,它为客户提供对数据布局和格式的动态控制,我们描述了 Bigtable 的设计和实现。...Bigtable将数据统统看成无意义的字节串,客户端需要将结构化和非结构化数据串行化再存入Bigtable。...首先看看BigTable和GFS 是什么关系呢?...Bigtable集群 BigTable集群通过三个层级配套组件完成工作。
今天扯一下 Hbase ,我对 Hbase 的了解起源于两篇文章Understanding HBase and BigTable和《李逵麻子,李鬼坑人--BigTable的数据模型》;这两篇本质上还是一篇文章...,《李逵麻子,李鬼坑人--BigTable的数据模型》类似于Understanding HBase and BigTable的中文版讲解。...HBase(Hadoop Database),是一个基于 Google BigTable 论文设计的高可靠性、高性能、可伸缩的分布式存储系统。...按照《李逵麻子,李鬼坑人--BigTable的数据模型》的说法,“因为BigTable借用了很多的关系数据库的术语来表示并非是关系数据库的东西,所以我们的理解就似是而非了。”...准确而言,Hbase 应该是 A Bigtable is a sparse, distributed, persistent multidimensional sorted map.
背景 谷歌在2006年的一份研究报告中首次对Bigtable进行了阐述,如果你熟悉Bigtable这个名词,那么:行先是以一种非常独特的方式被索引,随后Bigtable利用行键对数据进行分割,将它们分布到集群中...Cassandra和HBase都在很大程度上借鉴了早期Bigtable的定义。Cassandra起源于Bigtable和亚马逊的Dynamo技术,HBase将自身定位为"开源Bigtable工具"。...Cassandra和Hbase异同 Cassandra会在集群中选取几个种子节点,负责集群通信,达到高可用目的;Hbase则是利用主备节点选举HMaster,如果主节点故障,则启用备份节点。...Cassandra利用Gossip协议进行节点通信,Hbase使用Zookeeper进行进行协调。 Cassandra允许用户创建二级索引,Hbase缺乏二级索引支持,但是有开源解决方案。...Hbase有"协处理器"(coprocessors)这一概念,允许在HBase进程中执行用户自定义代码。Cassandra目前还没有支持。
1.2 BigTable成就了HBase ? ...Google这个神奇的公司以其不保守的态度以学术论文的方式公开了其云计算的三大法宝:GFS、MapReduce和BigTable,其中对于BigTable的开源实现HBase则是由Doug Cutting...就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。...Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用...HBASE中的每一张表,就是所谓的BigTable,一张稀疏表。
BigTable和Dynamo是两个最著名的Key-Value Store。它们的实现各有不同,功能各有差异。...无论是BigTable还是Dynamo,开源都有对应的实现,分别是HBase和Cassandra。...这个事情更为有意思的是当Google决定release它自己的BigTable作为Cloud service的时候,Google决定采用兼容HBase的API的方式。...当然我们可以理解,这反应了两个方面:第一HBase的确和Google的BigTable基于了非常相似的理念,第二是Google在BigData的世界里事实上已经没有影响力,只能迁就实际的标准来卖自己的产品...HBase的优点很大程度上是BigTable的优点,有strong consistency,写入速度快。是sorted所以对range query支持不错。
第1章 HBase简介 1.1 什么是HBase HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储。...官方网站:http://hbase.apache.org – 2006年Google发表BigTable白皮书 – 2006年开始开发HBase – 2008年北京成功开奥运会,程序员默默地将HBase...HBase是Google Bigtable的开源实现,但是也有很多不同之处。...比如:Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MAPREDUCE来处理Bigtable中的海量数据,HBase...同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应。
一.前述 1.HBase,是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库。...二.Hbase数据模型 ? 2.1 ROW KEY(相当于关系型数据库中的ID) 决定一行数据 按照字典顺序排序的。...HBase把同一列族里面的数据存储在同一目录下,由几个文件保存。 2.3 Timestamp时间戳(相当于版本!!!)...三.Hbase架构 ?...3.1 Client 包含访问HBase的接口并维护cache来加快对HBase的访问 3.2 Zookeeper 保证任何时候,集群中只有一个master(HA) 存贮所有Region的寻址入口。
笔记整理自 1 HBase 定义 Apache HBase 是以 hdfs 为数据存储的,一种分布式、可扩展的 NoSQL 数据库。...2 HBase 数据模型 HBase 的设计理念依据 Google 的 BigTable 论文,论文中对于数据模型的首句介绍。...Bigtable 是一个 稀疏的、分布式的、持久的 多维排序 map。 之后对于映射的解释如下: 该映射由行键、列键和时间戳索引;映射中的每个值都是一个未解释的字节数组。...最终 HBase 关于数据模型和 BigTable 的对应关系如下: HBase 使用与 Bigtable 非常相似的数据模型。用户将数据行存储在带标签的表中。...HBase 两 个自带的命名空间,分别是 hbase 和 default,hbase 中存放的是 HBase 内置的表,default表是用户默认使用的命名空间。
再后来开始关注HBase的设计和源码后,开始对BigTable传递的思想慢慢的清晰起来,但是因为事情太多,没有安排出时间重读BigTable的论文。...在项目里,我因为自己在学HBase,开始主推HBase,而另一个同事则因为对Cassandra比较感冒,因而他主要关注Cassandra的设计,不过我们两个人偶尔都会讨论一下技术、设计的各种观点和心得,...然后他偶然的说了一句:Cassandra和HBase都采用SSTable格式存储,然后我本能的问了一句:什么是SSTable?...然而这个问题本身却一直困扰着我,因而趁着现在有一些时间深入学习HBase和Cassandra相关设计的时候先把这个问题弄清楚了。...在Bigtable中,还可以支持在locality group级别设置是否将所有这个locality group的数据加载到内存中,在HBase中通过column family定义时设置。
在学习HBase的表结构之前,首先需要了解一下什么是Google的BigTable思想。BigTable大表的思想是Google的“第三驾马车”。...视频讲解如下: 那么什么是BigTable大表呢?简单来说就是把所有的数据存入一张表中,这样做的目的就是为了提高查询的性能。但是这也将违背关系型数据库范式的要求。...HBase就是BigTable大表思想的一个具体实现,并且它是一个列式存储的NoSQL数据库适合执行数据的分析和处理。简单来说就是适合执行查询操作。...如果把上图中的部门-员工数据存入HBase的表中,那将会是什么样的呢?下图展示了HBase的表结构。 HBase的表由列族组成,上图的“emp”和“dept”都是列族,列族中包含列。...例如,如果要得到上图所示的表结构和数据,可以在HBase中执行下面的语句。
3) HBase与大数据数据库、 HBase是建立在Hadoop文件系统之上的分布式面向列的数据库。 HBase是一个数据模型,类似于谷歌的Bigtable设计,可以提供快速随机访问海量结构化数据。...2.BigTable与HBase 要提到HBase,就要顺带提到google的Bigtable。...HBase是在谷歌BigTable的基础之上进行开源实现的,是一个高可靠、高性能、面向列、可伸缩的分布式数据库,可以用来存储非结构化和半结构化的稀疏数据。...1) 结构化数据和非结构化数据 BigTable和HBase存储的都是非结构化数据。...[7c96baffffe9c26cbe17ca6570eb48fa.png] 3) HBase简介 HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现。
由来 Hadoop Database 2006年末发起,根据Google的Chang等人发表的论文“Bigtable:A Distributed Storage System for Strctured...来加速Hbase的访问,比如cache的.META.元数据的信息。...流程 老的Region寻址方式 在Hbase 0.96版本以前,Hbase有两个特殊的表,分别是-ROOT-表和.META.表,其中-ROOT-的位置存储在ZooKeeper中,-ROOT-本身存储了...在BigTable的论文中,每行METADATA数据存储大小为1KB左右,如果按照一个Region为128M的计算,3层设计可以支持的Region个数为2^34个,采用2层设计可以支持2^17(131072...(3)Hlog数量上限 前面说到Hlog为了保证Hbase数据的一致性,那么如果Hlog太多的话,会导致故障恢复的时间太长,因此Hbase会对Hlog的最大个数做限制。
领取专属 10元无门槛券
手把手带您无忧上云