- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
郭斯杰_从文件存储,对象存储到流存储 - 重新思考流计算时代的分布式存储
展开查看详情
1 . E T B . 从⽂文件存储,对象存储到流存储 N P U I T — 重新思考流计算时代的分布式存储 Sijie Guo —- twitter: @sijieg wechat: guosijie_
2 .Who am I • Sijie Guo E T • . N 开源项⽬目爱好者:Pulsar, BookKeeper, Hive, HBase, … B • Streamlio联合创始⼈人 P U • I T Yahoo -> Twitter -> Streamlio • 华中科⼤大 -> 中科院计算所
3 .Storage E T B . N P U I T
4 .批: Hadoop E T B . N P U I T
5 .流: Storm + Kafka E T B . N P U I T
6 .The Current Mess E T B . N P U I T
7 .The Current Mess (2) • Stream Data Silo E T • . N 数据通常以Topics/Streams来进⾏行行组织,消息系统作为“存储” B • Batch Data Silo P U • I T 数据通常以⽂文件、对象来进⾏行行组织,⽂文件系统、对象存储作为其存储 • 两个不不同的Silo,有两套不不同的数据、API和相应的⼯工具
8 .Lambda Architecture E T B . N P U I T
9 .Kappa Architecture E T B . N P U I T
10 .Kappa Architecture E T N 看起来可以解决批流⼀一体的问题 . • • U B 但是Kappa Architecture使⽤用messaging system作为data layer • I TP 这个Data Layer是为“messaging”设计的,⽽而不不是为“Storage”设计的 • 我们需要⼀一个真正意义上的“Stream Storage”
11 .流存储 E T N “Stream” Storage: 数据在写⼊入后消费(读)者即可⻅见,Pub/Sub接⼝口 . • • U B Stream “Storage”: 存储系统,可靠、稳定地保存数据。 • I T “Big Data”: ⽔水平扩展性 P • ⾼高吞吐量量
12 . E T B . N 什什么是Apache Pulsar P U I T
13 . E T B . N P U I T
14 . E T . N “Flexible Pub/Sub messaging backed by durable B U log/stream storage” I T P
15 .项⽬目状态 T • 2012在Yahoo内部启动,经历了了⽆无数的迭代 • 2016年年九⽉月Yahoo将Pulsar开源 . N E • U B 2017年年六⽉月Yahoo将Pulsar捐献给了了Apache软件基⾦金金会 P 2018年年九⽉月Pulsar毕业成为顶级项⽬目 T • • • I 2353 commits - 22 Yahoo releases - 9 Apache releases 23 committers from 7 companies, 59 contributors • 30+ companies on production
16 .跟传统的消息系统不不同在哪⾥里里 E T • 灵活的、统⼀一的消息模型:队列列 + 流 B . N • P U 云原⽣生:存储(storage)和计算(serving/messaging)分离 • 降维:从分区到分⽚片 I T
17 .队列列 + 流 E T B . N P U I T
18 .流:独占式订阅 E T B . N P U I T
19 .流:灾备式订阅 E T B . N P U I T
20 .队列列:共享式订阅 E T B . N P U I T
21 .存储和计算分离 E T N 分层架构: Brokers & Bookies B . U • 独⽴立扩展 I TP • 灵活容错 • 快速扩容
22 .Apache BookKeeper T 分布式⽇日志存储 • 低延时、⾼高吞吐、持久化 . NE • U B 强⼀一致 (repeatable read consistency) • • ⾼高可⽤用 单节点可以存储很多⽇日志 I TP • I/O隔离
23 . Apache BookKeeper Source of Truth of Everything … E T • HDFS NameNode B . N • Databases: P U • • Messaging: I T Twitter Manhattan, Salesforce NewSQL Database • Twitter EventBus, Pulsar
24 . 分⽚片存储 E T • 分区(Partition)是逻辑上的⼀一个概念 B . N U • 分区按照时间或者⼤大⼩小被切成分⽚片 • (Segment) 分⽚片被打散存放到集群中的所有节点I TP
25 .Broker容错 E T B . N P U I T
26 .Bookie容错 E T B . N P U I T
27 .扩容 E T B . N P U I T
28 . 分区 vs 分⽚片 T 物理理分区 逻辑分区 E Segment 1 Segment 2 Segment 3 Segment n N Broker Broker Broker Broker Broker Broker . 分区 存储和计算 紧耦合 分区 分布 B (主副本) (拷⻉贝) (从拷⻉贝) 分离 U Segment 1 Segment 2 Segment 3 Segment 1 P Segment 2 Segment 3 Segment 1 Segment 2 . . . . . . . . I T Segment n Segment n Segment n Segment n 分区架构 ! 物理理分区 分⽚片架构 ! 存储和计算紧耦合 ! 容错恢复需要拷⻉贝物理理分区 ! 逻辑分区,“物理理”分⽚片 ! 扩容需要迁移物理理分区来达到负载均衡 ! 存储和计算分离 ! 失效处理理相互分离,快速、⽆无痛点 ! 弹性扩容
29 .分区 vs 分⽚片 E T B . N P U I T https://jack-vanlightly.com/sketches/2018/10/2/ kafka-vs-pulsar-rebalancing-sketch