BigTable学习分享李楠
论文的主要内容   摘要   简介   数据模型   客户端API   BigTable的底层数据结构   实现原理   改进策略   性能试验   设计结论   bigTable的支持   相关工作   结论
本次重点讲的几个部分 数据模型 底层数据结构 实现原理 改进策略
摘要
简介
数据模型 BigTable的数据模型 一个例子 Row Column Family Timestamps
数据模型
例子
例子
Row
Column Family
TimeStamps
客户端API(read的例子)   Scanner scanner(T);   Scanner * stream;   stream = scanner.FetchColumnFamily("anchor");   stream->Se...
客户端API(write的例子) //Open the table Table * T =  OpenOrDie("/bigtable/web/webtable");   //Write a new anchor and delete a...
底层数据结构 上层用MapReduce进行计算 下层用GFS分布式文件系统存储日志和  文件 通常和其他分布式程序部署在同一套集  群环境中 用SSTable文件格式来存储Bigtable数  据 依赖于高可用的分布式锁服务Chubby
用SSTable文件格式来存储Bigtable数据
依赖于高可用的分布式锁服务Chubby
来看一个Hbase的大的框架
Hbase上的map reduce
Hbase的详细架构图
对比定义 MapReduce => Hadoop GFS => HDFS BigTable => Hbase Chubby => ZooKeeper SSTable => Hfile Row ColumnFamily Timesta...
实现原理 系统的三个部分 Master的功能 Tablet server的功能 Client与big table的交互问题 Tablet location Tablet assignment Tablet serving com...
系统的三个部分   client library   master server   many tablet servers(可以动态增加)
master的功能   assign tablets to table servers(负载均衡) detecting the addition and expiration of table  server(table server的动态...
tablet server的功能   管理一系列tablet, 10~1000个   handle read and write requst to    the tablets   splits tablets that have gr...
client 与 Bitable的交互问题   数据读写,并不经过master(定位是在    chubby做的)   master更多承担维持Bigtable均衡负载    的角色   master系统资源消耗一般都很少
tablet location
Tablet location   用一个类似于B+树的三层结构,来存储tablet定位信息   chubby file => root tablet => meta tablet => user tablet   root tablet...
看一个Hbase的location Tablet =》Region Tablet Server => Region Server
tablet assignment
table serving
table serving
对一下Hbase的log部分
compactions
Hbase的分裂和收缩
改进策略
其他 BigTable网上有很多中文翻译,可以适  当的参见一下: http://zhiyuzhe.blog.163.com/blog/  static/1100540742010811105951381/
Q&A   ?
Upcoming SlideShare
Loading in …5
×

Big Table简介

1,396 views

Published on

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,396
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Big Table简介

  1. 1. BigTable学习分享李楠
  2. 2. 论文的主要内容 摘要 简介 数据模型 客户端API BigTable的底层数据结构 实现原理 改进策略 性能试验 设计结论 bigTable的支持 相关工作 结论
  3. 3. 本次重点讲的几个部分 数据模型 底层数据结构 实现原理 改进策略
  4. 4. 摘要
  5. 5. 简介
  6. 6. 数据模型 BigTable的数据模型 一个例子 Row Column Family Timestamps
  7. 7. 数据模型
  8. 8. 例子
  9. 9. 例子
  10. 10. Row
  11. 11. Column Family
  12. 12. TimeStamps
  13. 13. 客户端API(read的例子) Scanner scanner(T); Scanner * stream; stream = scanner.FetchColumnFamily("anchor"); stream->SetReturnAllVersions(); scanner.Lookup("com.cnn.www"); for(; !stream->Done(); stream->next()){ printf("%s %s %lld %sn", scanner.RowName(), stream->ColumnName(), stream->MicorTimestamp(), stream->Value() ); }
  14. 14. 客户端API(write的例子) //Open the table Table * T = OpenOrDie("/bigtable/web/webtable"); //Write a new anchor and delete an old anchor RowMutation r1(T, "com.cnn.www"); r1.Set("anchor:www.c-span.org", "CNN"); r1.Delete("anchor:www.abc.com"); Operation op; Apply(&op, &r1);
  15. 15. 底层数据结构 上层用MapReduce进行计算 下层用GFS分布式文件系统存储日志和 文件 通常和其他分布式程序部署在同一套集 群环境中 用SSTable文件格式来存储Bigtable数 据 依赖于高可用的分布式锁服务Chubby
  16. 16. 用SSTable文件格式来存储Bigtable数据
  17. 17. 依赖于高可用的分布式锁服务Chubby
  18. 18. 来看一个Hbase的大的框架
  19. 19. Hbase上的map reduce
  20. 20. Hbase的详细架构图
  21. 21. 对比定义 MapReduce => Hadoop GFS => HDFS BigTable => Hbase Chubby => ZooKeeper SSTable => Hfile Row ColumnFamily Timestamp的概念一 样
  22. 22. 实现原理 系统的三个部分 Master的功能 Tablet server的功能 Client与big table的交互问题 Tablet location Tablet assignment Tablet serving compactions
  23. 23. 系统的三个部分 client library master server many tablet servers(可以动态增加)
  24. 24. master的功能 assign tablets to table servers(负载均衡) detecting the addition and expiration of table server(table server的动态增减) balancing the tablet-server load garbage collection of files in GFS(不知道具体指什么) handle schema changes such as table and column faimily creations
  25. 25. tablet server的功能 管理一系列tablet, 10~1000个 handle read and write requst to the tablets splits tablets that have grown too large
  26. 26. client 与 Bitable的交互问题 数据读写,并不经过master(定位是在 chubby做的) master更多承担维持Bigtable均衡负载 的角色 master系统资源消耗一般都很少
  27. 27. tablet location
  28. 28. Tablet location 用一个类似于B+树的三层结构,来存储tablet定位信息 chubby file => root tablet => meta tablet => user tablet root tablet 不分裂,因此保持三层结构不会变成四层、五层、六层…… metadata table 存储的也是key/value对 ◦ key 是 一个tablet 的table 标石和talet的尾部标记 ◦ value是tablet的位置信息 ◦ 一个meta 行大概1kb内存数据 128MB metadata tablets, is sufficient to address 2^34 tablets 客户端会cache tablet location信息,但具体没看懂
  29. 29. 看一个Hbase的location Tablet =》Region Tablet Server => Region Server
  30. 30. tablet assignment
  31. 31. table serving
  32. 32. table serving
  33. 33. 对一下Hbase的log部分
  34. 34. compactions
  35. 35. Hbase的分裂和收缩
  36. 36. 改进策略
  37. 37. 其他 BigTable网上有很多中文翻译,可以适 当的参见一下: http://zhiyuzhe.blog.163.com/blog/ static/1100540742010811105951381/
  38. 38. Q&A ?

×