HBase简介

www.2G.com,70.1. Interface

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

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

23. Table

33. Schema Creation

www.2G.com 1

27.4. Delete

从表中删除豆蔻梢头行

34. Table Schema Rules Of Thumb

  • regions的分寸在10~50GB之间
  • cells的深浅不超过10MB
  • 压倒元白的,每一种表的列簇在1~3个以内。HBase的表不应该被规划成模仿关系型数据库的表
  • 一个有1~2个列簇的表所具有的regions大致在50~100个左右
  • 维持你的列簇名字尽大概的短

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

HDFS是一个遍及式的文件系统,适合积存大文件,但它无法提供高速的个性化的在文书中查找。HBase是营造于HDFS基础之上的,并且它辅助对大表的中的记录举行高效找出和换代。HBase内部将数据寄放在HDFS中被索引的“StoreFiles”上以供高速搜索。

30. Column Metadata

不存款和储蓄列的元数据,由此,HBase能够援救每风流倜傥行有大多列,行与行时期可以有两种差别的列。

22. Namespace

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

65.2. When Should I Use HBase?

并非颇负的标题都密密匝匝用HBase

先是、确定保证您有足够的数码。倘诺你有数以十万计的数额行,那么HBase是多个不利的挑精拣肥。假若你唯有数千大概百万的多寡,那么使用守旧的关系型数据库大概更加好,因为实际你的那几个数据只怕只供给一个只怕三个节点就能够处理得完,那样的话集群中的此外的节点就高居空闲状态。

其次、确定保障您无需用到关系型数据库的性情(譬如:固定类型的列、辅助索引、事务、查询语言等等)。基于关系型数据库营造的运用无法经过轻易的转移JDBC驱动来传输到HBase中。从凯雷德DBMS到HBase是一丝一毫相反的两套设计。

其三、确定保证您有足够的硬件。因为当DataNode数量低于5的时候HDFS将无法健康干活了。

26. Cells

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

31. Joins

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

24. Row

行根据row key字典升序存款和储蓄

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上。

 

 

Architecture

70. RegionServer

HRegionServer是RegionServer的贯彻,它担负服务并管制regions。在布满式集群中,二个RegionServer平常运转在三个DataNode上。

65. Overview

71. Regions

www.2G.com 2

参考 

54. HBase MapReduce Examples

 

69.3. Interface

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

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

27.2. Put

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

28. Versions

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

29. Sort Order

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

20. Conceptual View

www.2G.com 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”的行有5个本子,而row key为“com.example.www”的行有1个本子。contents:html列满含全部网址的HTML。

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

下图是八个仿照,目的在于表明表达地点大家所说的,便于大家知道:

www.2G.com 4

27.3. Scans

扫描特定属性的多行

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,那么,八个列修饰符或者是content:html,别的的还会有一点都不小可能率是content:pdf。固然,列簇在表创立的时候就定位了,不过列修饰符是不明确的,并且不相同的行恐怕有不通的列修饰符。

Cell

www.2G.com 5

Timestamp

  一个timestamp被写在各样value的旁边,它是多少个value的本子修饰符。默许的,timestamp代表数量被RegionServer写入的岁月,你也足以在写多少的时候指定二个两样的timestamp值

27.1. Get

归来钦定行的习性

73. HDFS

www.2G.com 6

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

HBase可以用作MapReduce作业的数据源。对于读写HBase的MapReduce作业,建议接纳TableMapper和TableReducer。

生龙活虎经你运营HBase作为数据源的MapReduce作业,你必要在安顿文件中钦定表和列名。

当您从HBase读取数据的时候,TableInputFormat央求regions的列表何况作为一个map。

 

27. Data Model Operations

数据模型有4个荦荦大者操作,分别是Get、Put、Scan和Delete。那么些操作是应用在表上的。

21. Physical View

虽说,在概念上,表看起来疑似意气风发行大器晚成行的,但大要上,它们是比照列簇被积累的。一个新的列修饰符能够在自由时刻被增添到列簇中。

www.2G.com 7

在前边的定义视图中的空的单元格是不被储存的。由此,诉求contents:html列并且timestamp为t8将再次来到未有值。但是,即使不点名timestamp,那么某些列的非常多分值都会被重返。要是内定多少个版本,唯有找到的首先个会被再次回到,因为数量是根据timestamp降序存款和储蓄的。

69. Master

HMaster是Master Server的二个兑现。Master Server担任监视集群中存有的RegionServer实例,何况它也是兼具元数据变动的二个对外接口。在布满式集群中,规范的Master运维在NameNode那台机器上。

65.1. NoSQL?

HBase是后生可畏种"NoSQL"数据库。“NoSQL”通常指的黑白关系型数据库,大家领会,关系型数据库协理SQL,约等于说HBase不扶植SQL。非关系型数据库有诸五种,Beck雷DB是生机勃勃种本地非关系型数据库,然则,HBase是布满式数据库。从本领上来说,HBase更疑似“Data Store”,实际不是“Data Base”,因为它贫乏多数关系型数据库的特征,比如:列类型、支持索引、触发器、查询语言等等。(PS:意思是,从工夫的角度讲,HBase更像叁个数据存储,而不像数据库)

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界面

25. Column Family

Columns in Apache HBase are grouped into column families.

列簇中装有的列成员皆有同样的前缀。比方,列courses:history和courses:math都以courses那些列簇的成员。用冒号分隔列簇和列修饰符。列簇前缀必需由得以打印输出的字符组成。列修饰符可以由大肆字节组成。列簇必需在表被定义的时候就宣称好,因而列就无需在表创造的时候定义了,况兼能够每七十一日新扩展。

大要上,全部的列簇成员被积攒在协同。

本文由银河网址发布于www.2G.com,转载请注明出处:HBase简介

您可能还会对下面的文章感兴趣: