HBase更像叁个数据存款和储蓄,HBase更像贰个数量存款和储蓄

Architecture

24. Row

行依照row key字典升序存款和储蓄

28. Versions

在HBase中,{row,column,version}能够明确八个单元格。当行和列被压缩成字节的时候,版本用long类型钦命。在HBase中,版本以降序存款和储蓄,所以,近期的值总是第③被发觉。

20. Conceptual View

图片 1

在这几个例子中,有二个表叫“webtable”,它含有两行数据(com.cnn.www和com.example.www)和多少个列簇(contents,anchor,people)。对于第壹行(com.cnn.www),anchor包蕴两列(anchor:cssnsi.com,anchor:my.look.ca),contents包蕴一列(contents:html)。row
key为“com.cnn.www”的行有多少个版本,而row
key为“com.example.www”的行有二个本子。contents:html列包罗全部网站的HTML。

在那些表格中的空的单元格并不占用空间

下图是一个仿照,意在表达说明方面我们所说的,便于我们知晓:

图片 2

26. Cells

A {row, column, version} tuple exactly specifies a cell in
HBase.

27.3. Scans

环视特定属性的多行

31. Joins

HBase不直接join操作,至少不协助关系型数据库那种join。在HBase中,读取数据通过Get和Scan。

30. Column Metadata

不存款和储蓄列的元数据,由此,HBase可以帮衬每一行有广大列,行与行以内能够有各样分化的列。

33. Schema Creation

图片 3

21. Physical View

就算,在概念上,表看起来像是一行一行的,但大体上,它们是依据列簇被储存的。3个新的列修饰符能够在肆意时刻被添加到列簇中。

图片 4

在面前的定义视图中的空的单元格是不被储存的。由此,请求contents:html列并且timestamp为t8将赶回没有值。然则,要是不内定timestamp,那么某些列的绝大部分分值都会被再次回到。若是钦赐四个本子,只有找到的率先个会被再次回到,因为数量是比照timestamp降序存款和储蓄的。

27.2. Put

添加新的行到表中,只怕更新已经存在的行

23. Table

30. Column Metadata

不存款和储蓄列的元数据,因而,HBase能够支撑每一行有很多列,行与行之间能够有种种区其他列。

71. Regions

图片 5

参考 
http://hbase.apache.org/book.html\#\_architecture

27.1. Get

重回钦赐行的性质

29. Sort Order

对于持有的数据模型操作,HBase以数量被储存时的种种再次来到。首先按行排序,其次按列簇,再其次按列修饰符,最后是timestamp。(PS:前是四个是字典升序,最终1个timestamp是降序)

28. Versions

在HBase中,{row,column,version}能够分明四个单元格。当行和列被压缩成字节的时候,版本用long类型钦命。在HBase中,版本以降序存款和储蓄,所以,方今的值总是第壹被发觉。

69.3. Interface

HMasterInterface接口是操作元数据的基本点接口,提供以下操作:

  • Table (createTable, modifyTable,
    removeTable, enable, disable)
  • ColumnFamily (addColumn, modifyColumn,
    removeColumn)
  • Region (move, assign, unassign)

50. HBase as a MapReduce Job Data Source and Data Sink

HBase能够当作MapReduce作业的数据源。对于读写HBase的MapReduce作业,建议采用TableMapper和TableReducer。

假定你运维HBase作为数据源的MapReduce作业,你要求在布置文件中钦定表和列名。

当您从HBase读取数据的时候,TableInputFormat请求regions的列表并且作为2个map。

 

24. Row

行依照row key字典升序存储

26. Cells

A {row, column, version} tuple exactly specifies a cell in
HBase.

70.5. RegionServer Splitting Implementation

region
server处理写请求,它们被累积在内部存款和储蓄器中三个叫memstore的地点。一旦memstore文件满了,内容将被写到磁盘上作为store
file。这一个事件称为memstore flush。随着store
file的处处积聚,RegionServer将联合它们成大文件,以收缩store
file的数量。在每一遍刷新或许统一之后,region中多少的数目会发出改变。RegionServer依据切分策略来查阅是不是region太大了照旧应当被切分。

逻辑上,region切分的操作相当粗略。找三个相宜的地方,将region中的数据切分成七个新的region。然则,那个处理的历程并不简单。当切分产生的时候,数据并不是马上被重写到那么些心创立的孙女region上。

 

 

31. Joins

HBase不直接join操作,至少不协助关系型数据库那种join。在HBase中,读取数据通过Get和Scan。

50. HBase as a MapReduce Job Data Source and Data Sink

HBase能够看成MapReduce作业的数据源。对于读写HBase的MapReduce作业,提出使用TableMapper和TableReducer。

倘诺您运维HBase作为数据源的MapReduce作业,你须要在陈设文件中钦点表和列名。

当您从HBase读取数据的时候,TableInputFormat请求regions的列表并且作为四个map。

 

70.1. Interface

HRegionRegionInterface既包括数据的操作也含有region维护的操作

  • Data (get, put, delete, next,
    etc.)
  • Region (splitRegion, compactRegion,
    etc.)

27. Data Model Operations

数据模型有多少个重点操作,分别是Get、Put、Scan和Delete。这个操作是运用在表上的。

27.2. Put

添加新的行到表中,或然更新已经存在的行

65.3. What Is The Difference Between HBase and Hadoop/HDFS?

HDFS是一个分布式的文件系统,适合储存大文件,但它无法提供连忙的性格化的在文件中追寻。HBase是营造于HDFS基础之上的,并且它协助对大表的中的记录举办高效搜索和更新。HBase内部将数据存放在HDFS中被索引的“StoreFiles”上以供高速搜索。

Architecture

69. Master

HMaster是Master Server的1个实现。Master
Server负责监视集群中颇具的RegionServer实例,并且它也是具备元数据变动的1个对外接口。在分布式集群中,典型的Master运营在NameNode这台机器上。

参考 
http://hbase.apache.org/book.html\#\_architecture

23. Table

33. Schema Creation

图片 6

27.4. Delete

从表中删除一行

73. HDFS

图片 7

34. Table Schema Rules Of Thumb

  • regions的大小在10~50GB之间
  • cells的大大小小不当先10MB
  • 杰出的,每一个表的列簇在1~贰个之间。HBase的表不应有被设计成模仿关系型数据库的表
  • 一个有1~二个列簇的表所拥有的regions大概在50~100个左右
  • 维持你的列簇名字尽或然的短

27. Data Model Operations

数据模型有四个第3操作,分别是Get、Put、Scan和Delete。那么些操作是利用在表上的。

54. HBase MapReduce Examples

 

65.2. When Should I Use HBase?

并不是具有的题材都适合用HBase

先是、确定保证您有丰硕的多少。假使您有许许多多的多寡行,那么HBase是三个没错的选取。即使你只有数千或许百万的数量,那么使用守旧的关系型数据库恐怕更好,因为实在你的这几个数据只怕只须要一个要么多个节点就能处理得完,那样的话集群中的其余的节点就处在空闲状态。

其次、确认保障您不供给用到关系型数据库的风味(比如:固定类型的列、支持索引、事务、查询语言等等)。基于关系型数据库构建的使用无法经过简单的变更JDBC驱动来传输到HBase中。从汉兰达DBMS到HBase是完全相反的两套设计。

其三 、确定保障您有丰富的硬件。因为当DataNode数量低于5的时候HDFS将不能够健康办事了。

20. Conceptual View

图片 8

在那些事例中,有贰个表叫“webtable”,它包罗两行数据(com.cnn.www和com.example.www)和多个列簇(contents,anchor,people)。对于第②行(com.cnn.www),anchor包涵两列(anchor:cssnsi.com,anchor:my.look.ca),contents包蕴一列(contents:html)。row
key为“com.cnn.www”的行有多少个本子,而row
key为“com.example.www”的行有一个本子。contents:html列蕴含全部网站的HTML。

在那么些表格中的空的单元格并不占用空间

下图是五个仿照,意在表明表明地点大家所说的,便于大家知晓:

图片 9

29. Sort Order

对于有所的数据模型操作,HBase以数据被储存时的依次再次来到。首先按行排序,其次按列簇,再其次按列修饰符,最后是timestamp。(PS:前是八个是字典升序,最终二个timestamp是降序)

65.1. NoSQL?

HBase是一种”NoSQL”数据库。“NoSQL”一般指的是非关系型数据库,我们精晓,关系型数据库扶助SQL,也便是说HBase不补助SQL。非关系型数据库有不少种,贝克雷DB是一种本地非关系型数据库,但是,HBase是分布式数据库。从技术上来讲,HBase更像是“Data
Store”,而不是“Data
Base”,因为它缺少许多关系型数据库的性状,比如:列类型、帮助索引、触发器、查询语言等等。(PS:意思是,从技术的角度讲,HBase更像一个数额存储,而不像数据库)

HBase集群扩大通过扩张RegionServer来实现。假使3个集群从10扩展到贰十个RegionServer,那么,不仅仅是储存容积扩充一倍,连处理能力也会扩大一倍。对于关系型数据库而言,也能够用scale做到这样,可是须要建议的是,那亟需特地的硬件和存款和储蓄设备。HBase个性如下:

  • 强一致性读写:HBase不是二个“最后一致性”的数量存储。那使得它更合乎高速度的集合职责。
  • 自动分区:HBase的表通过region被分布在集群中,而region是电动拆分同等对待复分布数据行的。
  • 自动RegionServer容灾
  • Hadoop/HDFS集成:HBase补助HDFS作为它的分布式文件系统
  • MapReduce:HBase支持通过MapReduce基于HBase作为数据源的恢宏的并行处理
  • Java Client API:HBase援救通过Java
    API编制程序的主意来拜会
  • Thrift/REST
    API:HBase也支撑Thrift和REST那样的非Java的客户端
  • Block Cache and Bloom Filters
  • Operational
    Management:HBase提供web界面

70. RegionServer

HRegionServer是RegionServer的落到实处,它承受服务并管制regions。在分布式集群中,1个RegionServer平常运维在叁个DataNode上。

70.1. Interface

HRegionRegionInterface既涵盖数据的操作也包蕴region维护的操作

  • Data (get, put, delete, next,
    etc.)
  • Region (splitRegion, compactRegion,
    etc.)

27.4. Delete

从表中删除一行

73. HDFS

图片 10

70.5. RegionServer Splitting Implementation

region
server处理写请求,它们被累积在内部存款和储蓄器中三个叫memstore的地点。一旦memstore文件满了,内容将被写到磁盘上作为store
file。这么些事件称为memstore flush。随着store
file的缕缕积聚,RegionServer将合并它们成大文件,以缩减store
file的数据。在每一趟刷新或许合并之后,region中多少的数码会产生变更。RegionServer依据切分策略来查阅是或不是region太大了照旧应当被切分。

逻辑上,region切分的操作很简短。找多个恰如其分的职位,将region中的数据切分成五个新的region。然则,那么些处理的长河并不简单。当切分产生的时候,数据并不是当下被重写到这几个心创设的姑娘region上。

 

 

25. Column Family

Columns in Apache HBase
are grouped into column
families.

列簇中持有的列成员都有同样的前缀。例如,列courses:history和courses:math都是courses那些列簇的积极分子。用冒号分隔列簇和列修饰符。列簇前缀必须由得以打印输出的字符组成。列修饰符能够由任意字节组成。列簇必须在表被定义的时候就宣称好,由此列就不须求在表创设的时候定义了,并且能够每十三日新增。

物理上,全数的列簇成员被储存在一齐。

69.3. Interface

HMasterInterface接口是操作元数据的首要接口,提供以下操作:

  • Table (createTable, modifyTable,
    removeTable, enable, disable)
  • ColumnFamily (addColumn, modifyColumn,
    removeColumn)
  • Region (move, assign, unassign)

27.1. Get

回去钦命行的属性

34. Table Schema Rules Of Thumb

  • regions的深浅在10~50GB之间
  • cells的大小不超越10MB
  • 名列前茅的,每一种表的列簇在1~三个以内。HBase的表不应有被规划成模仿关系型数据库的表
  • 一个有1~二个列簇的表所拥有的regions大概在50~100个左右
  • 有限支持您的列簇名字尽只怕的短

27.3. Scans

环顾特定属性的多行

65.1. NoSQL?

HBase是一种”NoSQL”数据库。“NoSQL”一般指的好坏关系型数据库,大家领略,关系型数据库援助SQL,相当于说HBase不帮忙SQL。非关系型数据库有为数不少种,Beck雷DB是一种本地非关系型数据库,不过,HBase是分布式数据库。从技术上来讲,HBase更像是“Data
Store”,而不是“Data
Base”,因为它缺乏许多关系型数据库的风味,比如:列类型、协理索引、触发器、查询语言等等。(PS:意思是,从技术的角度讲,HBase更像3个数据存款和储蓄,而不像数据库)

HBase集群扩大通过扩张RegionServer来完毕。假若二个集群从10扩大到十多个RegionServer,那么,不仅仅是储存容积扩充一倍,连处理能力也会扩展一倍。对于关系型数据库而言,也足以用scale做到那样,可是需求建议的是,那要求越发的硬件和存款和储蓄设备。HBase个性如下:

  • 强一致性读写:HBase不是二个“最后一致性”的数据存款和储蓄。那使得它更合乎高速度的聚众任务。
  • 自动分区:HBase的表通过region被分布在集群中,而region是电动拆分一视同仁新分布数据行的。
  • 自动RegionServer容灾
  • Hadoop/HDFS集成:HBase帮忙HDFS作为它的分布式文件系统
  • MapReduce:HBase扶助通过MapReduce基于HBase作为数据源的大量的并行处理
  • Java Client API:HBase帮忙通过Java
    API编制程序的法子来访问
  • Thrift/REST
    API:HBase也支撑Thrift和REST那样的非Java的客户端
  • Block Cache and Bloom Filters
  • Operational
    Management:HBase提供web界面

22. Namespace

2个命名空间是表的多个逻辑分组

65. Overview

Data Model

在HBase中,数据被贮存在表中,有行和列。这个术语和关系型数据有局地重叠,当然那不是多个很好的类比,但是它对我们寻思HBase的表示3个多维的map很有赞助。

Table

  由多行组成

Row

  HBase中的行由四个row
key和多少个或多少个列组成。Rows在储存的时候依据row
key的字典序存款和储蓄。正因为这么,row
key的安排性就展示十分重庆大学。基于那一点,相关连的行相互之间存在附近。平时,row
key是贰个网站的域名。如若你的row
key是域名,你应有以倒置的艺术存款和储蓄它们(比如:org.apache.www,org.apache.mail,org.apache.jira等等)。那样的话,全数的apache域名在表中是类似的职分,而不是被子域名的第三有的分离。

Column

  HBase中的列由二个列簇和1个列修饰符组成,它们中间用冒号分隔(:)

Column Family

  列簇由一多重的列和它们的值组成,那是依据质量考虑的。每三个列簇都有一多级的储存属性,比如:是还是不是它们的值应该被缓存到内部存款和储蓄器中,它们的数目怎么样被减去,它们的row
key如何被编码,等等。表中的每一行都有同等的列簇,就算二个加以的行在给定的列簇上一贯不存款和储蓄任何数据。

Column Qualifier

  三个列修饰符被添加到列簇中为了给钦命的数据片段提供索引。即便,给定的列簇是content,那么,三个列修饰符恐怕是content:html,别的的还有只怕是content:pdf。固然,列簇在表创造的时候就定位了,不过列修饰符是不鲜明的,而且分歧的行或许有不通的列修饰符。

Cell

图片 11

Timestamp

  2个timestamp被写在各样value的一旁,它是三个value的版本修饰符。私下认可的,timestamp代表数量被RegionServer写入的年月,你也得以在写多少的时候内定贰个例外的timestamp值

22. Namespace

一个命名空间是表的3个逻辑分组

65. Overview

54. HBase MapReduce Examples

 

71. Regions

图片 12

Data Model

在HBase中,数据被储存在表中,有行和列。那几个术语和关系型数据有部分交汇,当然那不是一个很好的类比,可是它对大家寻思HBase的意味二个多维的map很有帮衬。

Table

  由多行组成

Row

  HBase中的行由二个row
key和一个或三个列组成。Rows在蕴藏的时候根据row
key的字典序存款和储蓄。正因为如此,row
key的宏图就显示十三分重庆大学。基于那一点,相关连的行相互之间存在附近。常常,row
key是三个网站的域名。假若你的row
key是域名,你应该以倒置的措施存款和储蓄它们(比如:org.apache.www,org.apache.mail,org.apache.jira等等)。那样的话,全数的apache域名在表中是相仿的职务,而不是被子域名的首先局地分离。

Column

  HBase中的列由叁个列簇和一个列修饰符组成,它们中间用冒号分隔(:)

Column Family

  列簇由一密密麻麻的列和它们的值组成,那是依照质量考虑的。每一个列簇都有一名目繁多的蕴藏属性,比如:是或不是它们的值应该被缓存到内部存款和储蓄器中,它们的数量怎么样被缩小,它们的row
key如何被编码,等等。表中的每一行都有同样的列簇,就算五个加以的行在给定的列簇上从未有过存款和储蓄任何数据。

Column Qualifier

  二个列修饰符被添加到列簇中为了给钦点的多寡片段提供索引。假使,给定的列簇是content,那么,1个列修饰符大概是content:html,别的的还有恐怕是content:pdf。纵然,列簇在表创制的时候就定位了,不过列修饰符是不显著的,而且分化的行或者有梗塞的列修饰符。

Cell

图片 13

Timestamp

  二个timestamp被写在种种value的边缘,它是三个value的本子修饰符。暗中同意的,timestamp代表数量被RegionServer写入的年月,你也能够在写多少的时候内定三个例外的timestamp值

70. RegionServer

HRegionServer是RegionServer的落实,它承担服务并保管regions。在分布式集群中,三个RegionServer常常运转在二个DataNode上。

65.3. What Is The Difference Between HBase and Hadoop/HDFS?

HDFS是1个分布式的文件系统,适合储存大文件,但它无法提供火速的脾性化的在文件中追寻。HBase是营造于HDFS基础之上的,并且它协助对大表的中的记录进行飞快搜索和翻新。HBase内部将数据存放在HDFS中被索引的“StoreFiles”上以供高速搜索。

65.2. When Should I Use HBase?

并不是具有的标题都符合用HBase

首先、确定保证您有丰裕的数目。倘诺您有许许多多的数目行,那么HBase是一个科学的选料。借使你唯有数千或许百万的数额,那么使用古板的关系型数据库可能更好,因为实在你的这个数据恐怕只必要二个可能多个节点就能处理得完,那样的话集群中的其余的节点就处在空闲状态。

第① 、确认保证您不必要用到关系型数据库的特点(比如:固定类型的列、扶助索引、事务、查询语言等等)。基于关系型数据库构建的应用不可能经过简单的变更JDBC驱动来传输到HBase中。从昂CoraDBMS到HBase是一心相反的两套设计。

其叁 、确定保障您有丰富的硬件。因为当DataNode数量紧跟于5的时候HDFS将无法通常干活了。

69. Master

HMaster是Master Server的三个贯彻。Master
Server负责监视集群中具有的RegionServer实例,并且它也是独具元数据变动的二个对外接口。在分布式集群中,典型的Master运维在NameNode那台机器上。

21. Physical View

就算,在概念上,表看起来像是一行一行的,但大体上,它们是遵从列簇被贮存的。一个新的列修饰符能够在随机时刻被添加到列簇中。

图片 14

在面前的定义视图中的空的单元格是不被贮存的。因而,请求contents:html列并且timestamp为t8将赶回没有值。然则,借使不点名timestamp,那么某些列的大多数分值都会被再次来到。假诺钦赐多少个版本,只有找到的率先个会被再次回到,因为数量是安份守己timestamp降序存款和储蓄的。

25. Column Family

Columns in Apache HBase
are grouped into column
families.

列簇中负有的列成员都有一致的前缀。例如,列courses:history和courses:math都以courses这一个列簇的成员。用冒号分隔列簇和列修饰符。列簇前缀必须由得以打字与印刷输出的字符组成。列修饰符能够由任意字节组成。列簇必须在表被定义的时候就声称好,因而列就不要求在表成立的时候定义了,并且可以每一日新增。

大体上,全数的列簇成员被储存在一道。

相关文章