HBase更像一个数目存款和储蓄,HBase更像2个数码存款和储蓄

20. Conceptual View

图片 1

在那一个事例中,有3个表叫“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”的行有3个版本。contents:html列蕴涵全部网址的HTML。

在这一个表格中的空的单元格并不占用空间

下图是一个仿照,意在表明表达方面大家所说的,便于大家知道:

图片 2

65.1. NoSQL?

HBase是1种”NoSQL”数据库。“NoSQL”一般指的长短关系型数据库,我们精通,关系型数据库补助SQL,也便是说HBase不补助SQL。非关系型数据库有很各类,Beck雷DB是1种本地非关系型数据库,然则,HBase是分布式数据库。从技术上来讲,HBase更像是“Data
Store”,而不是“Data
Base”,因为它贫乏许多关系型数据库的特点,比如:列类型、帮忙索引、触发器、查询语言等等。(PS:意思是,从技术的角度讲,HBase更像一个数额存款和储蓄,而不像数据库)

HBase集群扩大通过增添RegionServer来达成。假使一个集群从十扩展到211个RegionServer,那么,不仅仅是储存体积增添一倍,连处理能力也会扩张1倍。对于关系型数据库而言,也足以用scale做到那样,可是须要提出的是,这亟需特地的硬件和存款和储蓄设备。HBase个性如下:

  • 强1致性读写: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界面

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

HDFS是多少个分布式的文件系统,适合储存大文件,但它不能够提供高效的本性化的在文书中检索。HBase是塑造于HDFS基础之上的,并且它协理对大表的中的记录进行快捷搜索和换代。HBase内部将数据存放在HDFS中被索引的“StoreFiles”上以供高速搜索。

22. Namespace

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

54. HBase MapReduce Examples

 

20. Conceptual View

图片 3

在这几个事例中,有二个表叫“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”的行有3个版本。contents:html列包括全部网址的HTML。

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

下图是一个效仿,意在表达表达地方大家所说的,便于我们知晓:

图片 4

Architecture

31. Joins

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

24. Row

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

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)

27.4. Delete

从表中删除一行

30. Column Metadata

不存款和储蓄列的元数据,因而,HBase能够支持每一行有无数列,行与行之间能够有多样区别的列。

65. Overview

25. Column Family

Columns in Apache HBase
are grouped into column
families.

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

大体上,全部的列簇成员被储存在1块。

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的列表并且作为三个map。

 

71. Regions

图片 5

27. Data Model Operations

数据模型有四个基本点操作,分别是Get、Put、Scan和Delete。那一个操作是运用在表上的。

27.2. Put

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

21. Physical View

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

图片 6

在方今的概念视图中的空的单元格是不被积存的。因而,请求contents:html列并且timestamp为t8将赶回未有值。可是,即使不点名timestamp,那么有个别列的抢先四分之一值都会被再次回到。如果内定四个版本,唯有找到的率先个会被再次来到,因为数量是比照timestamp降序存款和储蓄的。

65.2. When Should I Use HBase?

并不是具备的题材都契合用HBase

先是、确定保证您有丰富的数目。固然你有不可估计的数码行,那么HBase是三个不利的取舍。假设你唯有数千可能百万的多少,那么使用古板的关系型数据库或者越来越好,因为实在你的那一个数据大概只必要三个要么多个节点就能处理得完,那样的话集群中的此外的节点就处在空闲状态。

其次、确认保证您不供给用到关系型数据库的特点(比如:固定类型的列、帮忙索引、事务、查询语言等等)。基于关系型数据库创设的施用无法通过不难的转移JDBC驱动来传输到HBase中。从福睿斯DBMS到HBase是完全相反的两套设计。

其3、确认保障您有充足的硬件。因为当DataNode数量低于5的时候HDFS将不能符合规律工作了。

73. HDFS

图片 7

70.1. Interface

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

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

23. Table

34. Table Schema Rules Of Thumb

  • regions的深浅在10~50GB之间
  • cells的高低不超越十MB
  • 卓越的,每种表的列簇在一~一个里面。HBase的表不应有被规划成模仿关系型数据库的表
  • 一个有1~2个列簇的表所拥有的regions大概在50~100个左右
  • 维持您的列簇名字尽也许的短

33. Schema Creation

图片 8

Architecture

71. Regions

图片 9

Data Model

在HBase中,数据被储存在表中,有行和列。那一个术语和关系型数据有局地重合,当然那不是二个很好的类比,可是它对大家寻思HBase的代表1个多维的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,那么,3个列修饰符大概是content:html,其余的还有希望是content:pdf。纵然,列簇在表创造的时候就固定了,不过列修饰符是不鲜明的,而且分歧的行也许有梗塞的列修饰符。

Cell

图片 10

Timestamp

  1个timestamp被写在各类value的边沿,它是1个value的版本修饰符。暗中认可的,timestamp代表数量被RegionServer写入的年华,你也足以在写多少的时候钦点二个不一样的timestamp值

27.2. Put

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

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

HDFS是3个分布式的文件系统,适合储存大文件,但它不可能提供高效的个性化的在文书中搜索。HBase是塑造于HDFS基础之上的,并且它补助对大表的中的记录进行飞速搜索和更新。HBase内部将数据存放在HDFS中被索引的“StoreFiles”上以供高速搜索。

22. Namespace

三个命名空间是表的叁个逻辑分组

29. Sort Order

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

29. Sort Order

对于有着的数据模型操作,HBase以数据被积存时的逐一重临。首先按行排序,其次按列簇,再其次按列修饰符,最后是timestamp。(PS:前是八个是字典升序,最终一个timestamp是降序)

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

HBase能够作为MapReduce作业的数据源。对于读写HBase的MapReduce作业,建议选拔TableMapper和TableReducer。

壹旦您运转HBase作为数据源的MapReduce作业,你必要在陈设文件中钦命表和列名。

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

 

27.3. Scans

举目四望特定属性的多行

70. RegionServer

HRegionServer是RegionServer的兑现,它负责服务并管理regions。在分布式集群中,3个RegionServer平日运营在1个DataNode上。

31. Joins

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

26. Cells

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

Data Model

在HBase中,数据被积存在表中,有行和列。那些术语和关系型数据有壹些重合,当然那不是一个很好的类比,可是它对我们思想HBase的代表三个多维的map很有救助。

Table

  由多行组成

Row

  HBase中的行由二个row
key和一个或两个列组成。Rows在仓库储存的时候遵照row
key的字典序存款和储蓄。正因为这么,row
key的统一筹划就呈现相当关键。基于那一点,相关连的行互相之间存在左近。平常,row
key是3个网址的域名。倘诺你的row
key是域名,你应有以倒置的主意存款和储蓄它们(比如:org.apache.www,org.apache.mail,org.apache.jira等等)。那样的话,全部的apache域名在表中是近乎的地点,而不是被子域名的首先部分分离。

Column

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

Column Family

  列簇由1雨后冬笋的列和它们的值组成,那是依照质量考虑的。各样列簇都有一体系的积存属性,比如:是不是它们的值应该被缓存到内存中,它们的多少如何被削减,它们的row
key怎么样被编码,等等。表中的每一行都有同样的列簇,尽管贰个加以的行在给定的列簇上尚未存款和储蓄任何数据。

Column Qualifier

  3个列修饰符被添加到列簇中为了给钦命的数目片段提供索引。若是,给定的列簇是content,那么,3个列修饰符也许是content:html,别的的还有希望是content:pdf。纵然,列簇在表创造的时候就定位了,不过列修饰符是不显明的,而且差异的行大概有不通的列修饰符。

Cell

图片 11

Timestamp

  三个timestamp被写在各样value的两旁,它是一个value的本子修饰符。暗中同意的,timestamp代表数量被RegionServer写入的时刻,你也能够在写多少的时候钦赐3个两样的timestamp值

73. HDFS

图片 12

27.4. Delete

从表中删除1行

27. Data Model Operations

数据模型有五个根本操作,分别是Get、Put、Scan和Delete。那个操作是应用在表上的。

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那几个列簇的分子。用冒号分隔列簇和列修饰符。列簇前缀必须由得以打字与印刷输出的字符组成。列修饰符能够由任意字节组成。列簇必须在表被定义的时候就宣称好,因而列就不需求在表制造的时候定义了,并且能够随时新增。

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

65. Overview

30. Column Metadata

不存款和储蓄列的元数据,因而,HBase可以协助每一行有好多列,行与行时期能够有种种差别的列。

34. Table Schema Rules Of Thumb

  • regions的深浅在10~50GB之间
  • cells的高低不抢先拾MB
  • 顶尖的,各种表的列簇在壹~三个里头。HBase的表不该被规划成模仿关系型数据库的表
  • 一个有1~2个列簇的表所拥有的regions大约在50~100个左右
  • 保持您的列簇名字尽大概的短

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

70. RegionServer

HRegionServer是RegionServer的贯彻,它承受服务并管制regions。在分布式集群中,1个RegionServer日常运维在贰个DataNode上。

27.1. Get

归来钦点行的性情

69. Master

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

54. HBase MapReduce Examples

 

65.1. NoSQL?

HBase是一种”NoSQL”数据库。“NoSQL”1般指的是是非非关系型数据库,大家理解,关系型数据库支持SQL,也正是说HBase不支持SQL。非关系型数据库有广大种,Beck雷DB是1种本地非关系型数据库,但是,HBase是分布式数据库。从技术上来讲,HBase更像是“Data
Store”,而不是“Data
Base”,因为它缺乏许多关系型数据库的特征,比如:列类型、支持索引、触发器、查询语言等等。(PS:意思是,从技术的角度讲,HBase更像贰个数码存款和储蓄,而不像数据库)

HBase集群扩展通过扩大RegionServer来实现。假若一个集群从10恢弘到二十一个RegionServer,那么,不仅仅是储存容积扩大一倍,连处理能力也会扩张一倍。对于关系型数据库而言,也得以用scale做到那样,不过必要提议的是,那要求专门的硬件和存款和储蓄设备。HBase天性如下:

  • 强1致性读写:HBase不是2个“最后壹致性”的数目存款和储蓄。这使得它更符合高速度的相会任务。
  • 机动分区: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界面

21. Physical View

就算如此,在概念上,表看起来像是壹行一行的,但大体上,它们是根据列簇被储存的。贰个新的列修饰符能够在随心所欲时刻被添加到列簇中。

图片 13

在头里的定义视图中的空的单元格是不被积存的。由此,请求contents:html列并且timestamp为t八将赶回未有值。可是,如果不钦定timestamp,那么有些列的大部分值都会被重返。借使钦赐八个本子,唯有找到的首先个会被再次回到,因为数量是遵从timestamp降序存储的。

28. Versions

在HBase中,{row,column,version}可以规定八个单元格。当行和列被压缩成字节的时候,版本用long类型钦赐。在HBase中,版本以降序存款和储蓄,所以,方今的值总是第贰被发觉。

24. Row

行根据row key字典升序存储

65.2. When Should I Use HBase?

并不是富有的题材都符合用HBase

率先、确定保证您有丰硕的数码。倘若你有巨额的数额行,那么HBase是三个不利的选取。假使你唯有数千要么百万的多寡,那么使用古板的关系型数据库恐怕越来越好,因为实在你的那几个多少或许只须要两个要么多少个节点就能处理得完,那样的话集群中的别的的节点就处于空闲状态。

其次、确定保证您不需求用到关系型数据库的特性(比如:固定类型的列、帮衬索引、事务、查询语言等等)。基于关系型数据库创设的利用不能够透过简单的更动JDBC驱动来传输到HBase中。从卡宴DBMS到HBase是一心相反的两套设计。

其3、确定保障您有丰裕的硬件。因为当DataNode数量稍低于五的时候HDFS将无法正常工作了。

33. Schema Creation

图片 14

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

23. Table

27.1. Get

回来钦点行的特性

70.5. RegionServer Splitting Implementation

region
server处理写请求,它们被累积在内部存款和储蓄器中1个叫memstore的地方。壹旦memstore文件满了,内容将被写到磁盘上作为store
file。那么些事件称为memstore flush。随着store
file的不止积聚,RegionServer将联合它们成大文件,以减弱store
file的数额。在历次刷新可能统一之后,region中多少的多寡会时有爆发改变。RegionServer依照切分策略来查看是不是region太大了大概应当被切分。

逻辑上,region切分的操作不会细小略。找1个恰如其分的岗位,将region中的数据切分成三个新的region。然则,这几个处理的进程并不简单。当切分发生的时候,数据并不是随即被重写到这一个心创制的姑娘region上。

 

 

70.1. Interface

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

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

27.3. Scans

扫描特定属性的多行

26. Cells

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

69. Master

HMaster是Master Server的叁个达成。Master
Server负责监视集群中有着的RegionServer实例,并且它也是兼备元数据变动的1个对外接口。在分布式集群中,典型的Master运维在NameNode那台机器上。

相关文章