Successfully reported this slideshow.

HBase杂谈

4,895 views

Published on

介绍NoSQL、HBase、Cassandra

Published in: Technology
  • 很不错
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

HBase杂谈

  1. 1. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ ...................................... HBase 杂谈 NoSQL, BigTable, HBase, Cassandra. 潘伟洲1 林泽殷1 1 Master Candidate School of Computer South China Normal University April, 2012 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 1 / 74
  2. 2. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................心智图 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 2 / 74
  3. 3. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL 概述 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 3 / 74
  4. 4. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 4 / 74
  5. 5. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL: Why数据存储的趋势 Giant Global Graph (GGG) Ontologies RDF Folksonomies Tagging Wikis User- Blogs generated Content RSS Hypertext Text documents 1990 2000 2010 2020 2002 2004 2006 2008 2010 2012 Web 1.0 Web 2.0 Web 3.0 数据增长 信息连接 并发性 结构多样性 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 5 / 74
  6. 6. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL: Why关系型数据库的不足关系型数据库:管理结构化数据 复杂导致不确定性 有些问题不适合采用关联型的 数据模型 当数据量增长到一台机器已经 不能容纳, 我们需要将不同的数 据表分布到不同的机器 Figure 1: 数据量增长对性能的消极影响 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 6 / 74
  7. 7. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL: WhyHelp! . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 7 / 74
  8. 8. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL: WhatNoSQL 的定义 No to SQL No Only SQL . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 8 / 74
  9. 9. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL: WhatMartin Fowler 的定义.NosqlDefinition.“Some characteristics are common amongstthese databases, but none are definitional. Not using the relational model (nor the SQL language) Open source Designed to run on large clusters Based on the needs of 21st century web properties No schema, allowing fields to be added Figure 2: Martin Fowler to any record without controls ”. . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 9 / 74
  10. 10. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL 的特点NoSQL 的特点 简单灵活 复杂的操作交给应用层 使用 NoSQL 数据模型,通常需要你对存储的内部结构和实现算法有 一定的了解 使用 NoSQL 数据库,通常要自己处理数据结构解析和数据的冗余复 制问题 需要预先考虑数据的分级处理 牺牲稳定,换取性能 可能不具备关系数据库的 ACID 特性的一种或几种: Atomic:原子性 Consistency:一致性 Isolation:隔离性 Durability:持久性 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 10 / 74
  11. 11. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL 的特点数据模型进化论SQL→NoSQL,进步 or 倒退? Key-Value Document, OrderKey-Value BigTable Graph SQL Full-TextSearch Figure 3: 数据模型进化论 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 11 / 74
  12. 12. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL 的特点NoSQL 族谱目前简单将 NoSQL 几个分类的代表产品列举如下: Key-Value 存储: Amazon Dynamo, Voldemort, BDB, Kyoto Cabinet Key 结构化数据存储:Redis 类 BigTable 存储: Google BigTable, Apache HBase, Apache Cassandra 文档数据库: MongoDB, CouchDB 全文索引: Apache Lucene, Apache Solr 图数据库: neo4j, HyperGraphDB, FlockDB . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 12 / 74
  13. 13. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL 的特点NoSQL 族谱 Figure 4: NoSQL 族谱 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 13 / 74
  14. 14. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL 的特点NoSQL V.S. SQL 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 14 / 74
  15. 15. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL V.S. SQL当 SQL 遇见 NoSQL Figure 5: NoSQL Meets SQL . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 15 / 74
  16. 16. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................NoSQL V.S. SQLSQL 还是 NoSQL? Figure 6: SQL 还是 NoSQL? . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 16 / 74
  17. 17. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase 和 Cassandra 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 17 / 74
  18. 18. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase 和 Cassandra Hadoop Database Cassandra . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 18 / 74
  19. 19. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase: What 一个高可靠性、高性能、面向列、可伸缩的分布式存储系统 Google BigTable 的开源山寨版本 Bigtable: A distributed storage system for structured data . 利用 HBase 技术可在廉价 PC Server 上搭建起大规模结构化存储集 群 实时随机读写补充 HDFS 的不足 主要贡献者: Yahoo!, Facebook, Cloudera . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 19 / 74
  20. 20. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................Hadoop 生态系统 Figure 7: Hadoop 生态图 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 20 / 74
  21. 21. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................Cassandra: What Cassandra 是一套开源分布式 NoSQL 数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,是 Facebook 数据库系统的开源分支。集 Google BigTable 的数据模型与 Amazon Dynamo的完全分布式的架构于一身。Facebook 于 2008 将 Cassandra 开源,此后,由于 Cassandra 良好的可扩放性,被 Digg、Twitter 等知名 Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。 实际上,Cassandra 的最初开发工作就是由两位从 Amazon 跳槽到Facebook 的 Dynamo 工程师 Avinash Lakshman 和 Prashant Malik 完成的。 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 21 / 74
  22. 22. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................什么时候使用 HBase 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 22 / 74
  23. 23. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase: When 海量数据(上百个 TB 或更多) 需要很高的吞吐量 需要在海量数据中实现高效的随机读取 需要很好的伸缩能力 能够同时处理结构化和非结构化的数据 不需要完全拥有 RDMS 所具备的 ACID 特性 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 23 / 74
  24. 24. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术原理 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 24 / 74
  25. 25. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................数据模型数据模型 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 25 / 74
  26. 26. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................数据模型逻辑视图 Table 稀疏的、面向列的多维度排序 Map Map 的索引是行关键字、列关键字以及时间戳,Map 中的每个 value 都是一个未经解析的 byte 数组 Row:原子访问,字典序排序 Column:column family + qualifier Cell:(row:string, column:string,time:int64)→string Time Stamp:版本 "conte nts :" "a nchor:cnns i.com" "a nchor:my.look.ca " "<html>..." t3"com.cnn.www" "<html>..." t5 "CNN" t9 "CNN.com" t8 "<html>..." t6 Figure 8: 数据模型示例:webtable . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 26 / 74
  27. 27. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................数据模型逻辑视图 Table 1: 表 webtable Row Key Time ColumnFamily ColumnFamily an- Stamp contents chor “com.cnn.www” t9 anchor:cnnsi.com = “CNN” “com.cnn.www” t8 anchor:my.look.ca = “CNN.com” “com.cnn.www” t6 contents:html = “<html>...” “com.cnn.www” t5 contents:html = “<html>...” “com.cnn.www” t3 contents:html = “<html>...” . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 27 / 74
  28. 28. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................数据模型构造函数./src/main/java/org/apache/hadoop/hbase/keyvalue.java:§p u b l i c KeyValue ( f i n a l b y t e [ ] row , f i n a l b y t e [ ] f a m i l y , f i n a l by t e [ ] q u a l i f i e r , f i n a l l o n g timestamp , f i n a l b y t e [ ] v a l u e ){ t h i s ( row , f a m i l y , q u a l i f i e r , timestamp , Type . Put , v a l u e ) ;}p u b l i c KeyValue ( f i n a l b y t e [ ] row , f i n a l i n t r o f f s e t , f i n a l i n t r l e n g t h , f i n a l by t e [ ] f a m i l y , f i n a l i n t f o f f s e t , f i n a l i n t f l e n g t h , f i n a l by t e [ ] q u a l i f i e r , f i n a l i n t q o f f s e t , f i n a l i n t q l e n g t h , f i n a l l o n g timestamp , f i n a l Type type , f i n a l byte [ ] value , f i n a l i n t v o f f s e t , f i n a l i n t vlength ) { t h i s . b y t e s = c r e a t e B y t e A r r a y ( row , r o f f s e t , r l e n g t h , family , f o f f s e t , flength , q u a l i f i e r , q o f f s e t , qlength , timestamp , type , v a l u e , v o f f s e t , v l e n g t h ) ; t h i s . length = bytes . length ; this . o f f s e t = 0; } ¥ . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 28 / 74
  29. 29. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................物理存储物理视图 尽管在概念视图里,表可以被看成是一个稀疏的行的集合。但在物理上,它是区分 column family 存储的。新的 columns 可以不经过声明直接加入一个 column family。 另外值得注意的是概念视图中的空白 cell 在物理上是不存储的。 Table 2: ColumnFamily anchor Row Key Time Stamp Column Family anchor ”com.cnn.www” t9 anchor:cnnsi.com = ”CNN” ”com.cnn.www” t8 anchor:my.look.ca = ”CNN.com” Table 3: ColumnFamily contents Row Key Time Stamp ColumnFamily ”contents:” ”com.cnn.www” t6 contents:html = ”html...” ”com.cnn.www” t5 contents:html = ”html...” ”com.cnn.www” t3 contents:html = ”html...” . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 29 / 74
  30. 30. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................物理存储分片:Region 按 rowkey 将 Table 动态分割为一个个 region,每个 region 包含一个 连续的行范围 [startkey,endkey) Table Region 按照Row Key字典序 Region Region … Region Figure 9: 表格分割成 region . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 30 / 74
  31. 31. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................物理存储Region region 按大小分割的,每个表一开始只有一个 region,随着数据不断插入 表,region 不断增大,当增大到一个阀值的时候,region 就会等分为个新 的 region。当 table 中的行不断增多,就会有越来越多的 region,并在存 储集群内分发以达到负载均衡。 Table Table Region Region Region Region Region … … Region Region Figure 10: Region 的分割 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 31 / 74
  32. 32. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................物理存储RegionServerHRegion 是 Hbase 中分布式存储和负载均衡的最小单元。最小单元就表示不同的 HRegion 可以分布在不同的 HRegion server 上,但一个HRegion 不会拆分到多个 server 上。 Figure 11: RegionServer . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 32 / 74
  33. 33. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................物理存储StoreHRegion 虽然是分布式存储的最小单元,但并不是存储的最小单元。事实上,HRegion 由一个或者多个 Store 组成,每个 Store 保存一个columns family。每个 Strore 又由一个 memStore 和 0 至多个 StoreFile组成。StoreFile 以 HFile 格式保存在 HDFS 上。 Figure 12: Store . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 33 / 74
  34. 34. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................物理存储HFile 的格式HFile 分为 6 个部分: . Data Block 段:保存表中的数据,这部分可以被压缩; 1 . 2 Meta Block 段 (可选):保存用户自定义的元信息,可以被压缩; . File Info 段:Hfile 的元信息,不被压缩,用户也可以在这一部分添加自己 3 的元信息; . 4 Data Block Index 段:Data Block 的索引。每条索引的 key 是被索引的 block 的第一条记录的 key; . 5 Meta Block Index 段 (可选的):Meta Block 的索引; . Trailer:这一段是定长的。保存了每一段的偏移量,读取一个 HFile 时, 6 会首先读取 Trailer,Trailer 保存了每个段的起始位置 (段的 Magic Number 用来做安全 check),然后,DataBlock Index 会被读取到内存中,这样,当 检索某个 key 时,不需要扫描整个 HFile,而只需从内存中找到 key 所在 的 block,通过一次磁盘 io 将整个 block 读取到内存中,再找到需要的 key。DataBlock Index 采用 LRU 机制淘汰。 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 34 / 74
  35. 35. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................物理存储HFile 的格式 KeyLen (int) ValLen (int) Key (byte[]) Value (byte[]) Data Block 0 DATA BLOCK MAGIC (8B) Data Block 1 TRAILER BLOCK MAGIC (8B) Data Block 2 File Info Offset (long) KeyLen Key id ValLen Val (vint) (byte[]) (1B) (vint) (byte[]) Trailer Data Index Offset (long) Meta Block 0 (Optional) User Defined Metadata, Data Index Count (int) start with METABLOCKMAGIC Meta Block 1 Meta Index Offset (long) (Optional) Meta Index Count (int) File Info Total Uncompressed Data Bytes (long) Entry Count or Data K-V Count (int) User Defined Compression Codec (int) Meta Index Version (int) (Optional) Total Size of Trailer: 4xLong + 5xInt + 8Bytes = 60 Bytes Trailer Index of Meta Block 0 … Figure 14: Trailer Offset(long) MetaSize (int) MetaNameLen (vint) MetaName (byte[]) Offset(long) DataSize (int) KeyLen (vint) Key (byte[]) Figure 13: HFile 的格式 3 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 35 / 74
  36. 36. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................架构架构 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 36 / 74
  37. 37. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................架构HBase 架构 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 37 / 74
  38. 38. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................架构HBase 架构 • Region分配、负载均衡 • 定期扫描-ROOT-、.META. • 管理Table Schema • 分发close、flush、compact等管理消息 • 集群管理:容错、扩容、日志分裂 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 38 / 74
  39. 39. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................架构HBase 架构 • 索引查找 • 数据增删改查操作 • 管理操作 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 39 / 74
  40. 40. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................架构HBase 架构 • 处理Client读、写、扫描请求 • 与HMaster通信,处理管理消 息 • Region的open、close、 compaction、split、flush . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 40 / 74
  41. 41. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................架构HBase 架构 • 一个维护配置信息、 空间, 提供分布式 步、组管理的中 心化协调服务 • 储master、regionserver、 -ROOT- region的服务器地址 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 41 / 74
  42. 42. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节技术细节 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 42 / 74
  43. 43. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节索引方式:三层 B+ 树 ZooKeeper 的”-ROOT-”znode -ROOT- region .META. regions User Region1 Meta Region1 user row1 user region1 key user row2 user region2 key ... ... Root Region User Region2 Meta Region2 ZK-znode meta region1 key ... ... -ROOT- meta region2 key ... user regionN key ... ... ... . . . User RegionN . . . ... ... ... Figure 20: 三层 B+ 树 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 43 / 74
  44. 44. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节索引方式:三层 B+ 树 华南师范大学计算机学院102室108座 座位 ... 107 房号 101房 108 102房 学院 ... 计算机学院 华南师范大学 教育科学学院 ... Figure 21: 怎么找座位? . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 44 / 74
  45. 45. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节索引方式:三层 B+ 树 User Region 900? ... Meta Region 899 900 ... 850-950 Root Region ... 0-499 -ROOT- 500-1500 ... Figure 22: 在三层 B+ 树中找 Region 号为 900 的数据 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 45 / 74
  46. 46. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节问题.算一下.在 -ROOT- 和.META. 的 region 中记录大小约 1KB,按 region 默认大小256MB 计算,能够映射多少用户数据?.ROOT region 能映射 2.6 × 105 个.META. region,依次能映射总的 6.9x1010 个 user region,意味着大约是 1.8x1019 (264 ) 字节用户数据(即 214 PB) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 46 / 74
  47. 47. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节问题.算一下.在 -ROOT- 和.META. 的 region 中记录大小约 1KB,按 region 默认大小256MB 计算,能够映射多少用户数据?.ROOT region 能映射 2.6 × 105 个.META. region,依次能映射总的 6.9x1010 个 user region,意味着大约是 1.8x1019 (264 ) 字节用户数据(即 214 PB) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 46 / 74
  48. 48. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节Client Cacheclient 会将查询过的位置信息保存缓存起来,缓存不会主动失效,因此如果 client 上的缓存全部失效,则需要进行 6 次网络来回,才能定位到正确的 region(其中三次用来发现缓存失效,另外三次用来获取位置信息)。 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 47 / 74
  49. 49. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节读写过程 “RAM 是硬盘,硬盘是磁带” — Jim Gray.对于随机访问,硬盘慢得不可忍受,但如果你把硬盘当成磁带来用,它吞吐连续数据的速率令人震惊;它天生适合用来给以 RAM 为主的应用做日志。. 使用缓存来实现顺序写! 使用日志来实现数据恢复! Figure 23: Jim Gray . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 48 / 74
  50. 50. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节MemStore+WALMemStore 中的数据是排序的,当 MemStore 累计到一定阈值时,就会创建一个新的 MemStore,并且将老的 MemStore 添加到 flush 队列,由单独的线程 flush 到磁盘上,成为一个 StoreFile。于此同时,系统会在zookeeper 中记录一个 redo point,表示这个时刻之前的变更已经持久化了。(Minor Compact)当系统出现意外时,可能导致内存 (MemStore) 中的数据丢失,此时使用 Log(WAL log) 来恢复 checkpoint 之后的数据。前面提到过 StoreFile 是只读的,一旦创建后就不可以再修改。因此Hbase 的更新其实是不断追加的操作。当一个 Store 中的 StoreFile 达到一定的阈值后,就会进行一次合并 (major compact),将对同一个 key 的修改合并到一起,形成一个大的 StoreFile,当 StoreFile 的大小达到一定阈值后,又会对 StoreFile 进行 split,等分为两个 StoreFile。 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 49 / 74
  51. 51. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节MemStore+WAL MemStore flush writer HLog Seq#1,Table13,Region11,… StoreFile StoreFile StoreFile Seq#2,Table5,Region2,… Figure 24: MemStore+WAL . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 50 / 74
  52. 52. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节版本更新 I Figure 25: 版本更新 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 51 / 74
  53. 53. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节版本更新 II Figure 26: 版本更新 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 52 / 74
  54. 54. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节版本更新 III Figure 27: 版本更新 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 53 / 74
  55. 55. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节版本更新 IV Figure 28: 版本更新 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 54 / 74
  56. 56. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节版本更新 V Figure 29: 版本更新 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 55 / 74
  57. 57. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节CAP 理论 10 年前,Eric Brewer 教授指出了著名的 CAP 理论,CAP 理论告诉我们, 一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。 Figure 30: CAP . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 56 / 74
  58. 58. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节CAP 理论不同于传统的 RDBMS 的 “ACID” 特性,分布式数据库通常需要具备的基本特性称为 “BASE”: Basically Availble — 基本可用 Soft-state — 软状态/柔性事务 Eventual Consistency — 最终一致性 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 57 / 74
  59. 59. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节CAP 理论 因此系统的关注点不同, 相应的采用的策略也是不一样的, 只有真正的理解了系统的需求, 才有可能利用好 CAP 理论。 HBase 选择了 CP,即一致性和分区容错性,能够表现出强一致性以及很高的分区容错性。 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 58 / 74
  60. 60. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节一致性同一行数据的读写只在同一台 regionserver 上进行,因此 HBase 具有强一致性。 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 59 / 74
  61. 61. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节可靠性 . 存在单点故障,Region Server 宕机后,短时间内该 server 维护的 1 region 无法访问,等待 failover 生效。 . 通过 Master 维护各 Region Server 健康状况和 Region 分布。 2 . 多个 Master,Master 宕机有 zookeeper 的 paxos 投票机制选取下一 3 任 Master。Master 就算全宕机,也不影响 Region 读写。Master 仅 充当一个自动运维角色。 . HDFS 为分布式存储引擎,一备三,高可靠,0 数据丢失。 4 5. HDFS 的 NameNode 是一个 SPOF。 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 60 / 74
  62. 62. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节读写性能 Read Key/Value 客户端 Cache 数据读写定位可能要通过最多 6 次的网络 RPC,性能较低。 如果 client 上的缓存全部失效,则需要进行 6 次网络来回,才能定位 到正确的 region(其中三次用来发现缓存失效,另外三次用来获取位 置信息) BloomFilter(用于检索一个元素是否在一个集合中,速度快,但有一 定的误识别率) Write 使用日志型的数据结构 (WAL,Write-Ahead Logging) Cache(MemStore) 合并写操作 group commit . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 61 / 74
  63. 63. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................技术细节伸缩性 1. 扩容:直接新增机器 region 的自动分裂以及 master 的 balance; 只用增加 datanode 机器即可增加容量; 只用增加 regionserver 机器即可增加读写吞吐量; regionserver 扩容,通过将自身发布到 Master,Master 均匀分布。 2. Schema 变化:动态增删列 (族) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 62 / 74
  64. 64. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase APIHBase API 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 63 / 74
  65. 65. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase APIHBase API Java API Get Put Delete Scan HBaseAdmin MapReduce HBase shell (like mysql/hive) Thrift REST Jython,Scala,Groovy DSL, Cascading, Pig, Hive... . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 64 / 74
  66. 66. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase APIGet/ScanGets 是在 Scan 的基础上实现的。下面的讨论 Get 同样可以用 Scan 来描述。 . 1 默认 Get 例子 § Get g e t = new Get ( Bytes . t o B y t e s ( ”row1” ) ) ; Result r = htable . get ( get ) ; b y t e [ ] b = r . g e t V a l u e ( Bytes . t o B y t e s ( ” c f ” ) , Bytes . t o B y t e s ( ” a t t r ” ) ) ; // r e t u r n s c u r r e n t v e r s i o n o f v a l u e ¥ 2. 含有版本的 Get 例子 § Get g e t = new Get ( Bytes . t o B y t e s ( ”row1” ) ) ; g e t . s e t M a x V e r s i o n s ( 3 ) ; // w i l l r e t u r n l a s t 3 v e r s i o n s o f row Result r = htable . get ( get ) ; b y t e [ ] b = r . g e t V a l u e ( Bytes . t o B y t e s ( ” c f ” ) , Bytes . t o B y t e s ( ” a t t r ” ) ) ; // r e t u r n s c u r r e n t v e r s i o n o f v a l u e L i s t KeyValue kv = r . getColumn ( Bytes . t o B y t e s ( ” c f ” ) , Bytes . t o B y t e s ( ” a t t r ” ) ) ; // r e t u r n s a l l v e r s i o n s o f t h i s column ¥ . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 65 / 74
  67. 67. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase APIPut 一个 Put 操作会给一个 cell, 创建一个版本,默认使用当前时间戳,当然你也可以自己设置时间戳。这就意味着你可以把时间设置在过去或者未来,或者随意使用一个 Long 值。要想覆盖一个现有的值,就意味着你的 row,column 和版本必须完全相等。 . 1 不指明版本的例子(Hbase 会用当前时间作为版本) § Put put = new Put ( Bytes . t o B y t e s ( row ) ) ; put . add ( Bytes . t o B y t e s ( ” c f ” ) , Bytes . t o B y t e s ( ” a t t r 1 ” ) , Bytes . t o B y t e s ( data ) ) ; h t a b l e . put ( put ) ; ¥ 2. 指明版本的例子 § Put put = new Put ( Bytes . t o B y t e s ( row ) ) ; l o n g e x p l i c i t T i m e I n M s = 5 5 5 ; // j u s t an example put . add ( Bytes . t o B y t e s ( ” c f ” ) , Bytes . t o B y t e s ( ” a t t r 1 ” ) , e x p l i c i t T i m e I n M s , Bytes . t o B y t e s ( data ) ) ; h t a b l e . put ( put ) ; ¥ . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 66 / 74
  68. 68. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase APIDelete 有两种方式来确定要删除的版本。 删除所有比当前早的版本。 删除指定的版本。 一个删除操作可以删除一行,也可以是一个 column family,或者仅仅删除一个 column。你也可以删除指明的一个版本。若你没有指明,默认情况下是删除比当前时间早的版本。 删除操作的实现是创建一个删除标记。当写下一个删除标记后,只有下一个 major compaction 操作发起之后,这个删除标记才会消失。 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 67 / 74
  69. 69. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase 特点总结 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 68 / 74
  70. 70. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase 特点总结 行操作的强一致性 线性扩展,自动分表 支持 RegionServers 间的自动故障转移 和 Hadoop 无缝集成,支持 MapReduce 高性能随机写 丰富的 API 接口 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 69 / 74
  71. 71. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase 特点总结 行操作的强一致性 线性扩展,自动分表 支持 RegionServers 间的自动故障转移 和 Hadoop 无缝集成,支持 MapReduce 高性能随机写 丰富的 API 接口 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 69 / 74
  72. 72. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase 特点总结 行操作的强一致性 线性扩展,自动分表 支持 RegionServers 间的自动故障转移 和 Hadoop 无缝集成,支持 MapReduce 高性能随机写 丰富的 API 接口 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 69 / 74
  73. 73. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase 特点总结 行操作的强一致性 线性扩展,自动分表 支持 RegionServers 间的自动故障转移 和 Hadoop 无缝集成,支持 MapReduce 高性能随机写 丰富的 API 接口 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 69 / 74
  74. 74. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase 特点总结 行操作的强一致性 线性扩展,自动分表 支持 RegionServers 间的自动故障转移 和 Hadoop 无缝集成,支持 MapReduce 高性能随机写 丰富的 API 接口 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 69 / 74
  75. 75. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase 特点总结 行操作的强一致性 线性扩展,自动分表 支持 RegionServers 间的自动故障转移 和 Hadoop 无缝集成,支持 MapReduce 高性能随机写 丰富的 API 接口 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 69 / 74
  76. 76. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................HBase V.S. Cassandra Cassandra 只有一种节点,而 HBase 有多种不同角色,又架构在 Hadoop 底层平台之上,部署上 Cassandra 更简单; Cassandra 的数据一致性策略是可配置的; HBase 提供了 Cassandra 没有的行锁机制,Cassandra 要想使用锁需 要配合其他系统,如 Hadoop Zookeeper; HBase 提供更好的 MapReduce 并行计算支持,Cassandra 在 0.6 版 本也提供了这个功能,但还需要有一个 Hadoop 集群来运行它. 需 要将数据从 Cassandra 集群迁移到 Hadoop 集群. 不适合对大型数据 运行 MapReduce 任务.; Cassandra 的读写性能和可扩展性更好,但不擅长区间扫描。 . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 70 / 74
  77. 77. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................My point of view HBase 更成熟,Cassandra 更有活力; HBase 更加适合于数据仓库、大型数据的处理和分析(如进行 Web 页面的索引等) ,而 Cassandra 更适合于实时事务处理和提供交互型 数据。更多比较: Cassandra 和 HBase 主要设计思路对比 . . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 71 / 74
  78. 78. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................应用情况 5. HBase 特点总结 6. 应用情况 (2 min) (1 min) 技术细节 . . NoSQL . . API . . 4. HBase 1. NoSQL 技术原理 . HBase. 杂谈 . 概述 (25 min) (10 min) . NoSQL . V.S. SQL 架构 . . 数据模型 . 3. 什么时候 2. HBase 和 使用 HBase Cassandra (1 min) (2 min) . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 72 / 74
  79. 79. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ .....................................谁在用 HBase? Yahoo! Facebook Hulu LinkedIn Last.fm 百度 阿里巴巴 中国移动 ... . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 73 / 74
  80. 80. NoSQL 概述 HBase 和 Cassandra 什么时候使用 HBase 技术原理 HBase 特点总结 应用情况............ ..................................... Thank You! . . . . . . Joseph Pan, Zeyin Lin (SCNU) HBase 杂谈 2012-4-23 74 / 74

×