郭斯杰_从文件存储,对象存储到流存储 - 重新思考流计算时代的分布式存储

郭斯杰_从文件存储,对象存储到流存储 - 重新思考流计算时代的分布式存储
展开查看详情

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