当前课程知识点:大数据平台核心技术 > 第八讲 内存计算 > 业界经典系统技术分析-spark&flink > 业界经典系统技术分析-spark&flink(主讲人:强琦)
课程刚开始我就介绍到了
两个大名鼎鼎的系统
结合上面提到过的
核心技术点
我将会简要介绍一下
spark系统和flink系统
可以看到spark在写
WordCount的函数
整个一个处理代码非常简单
读一行一行的数据是udtf
把它数据按照空格
把它打成一个一个的
map发现key
而Reduce做加法
最终存储
大家可以看到spark做
PageRank
简要的来看
大家可以注意这个Case
这是spark做内存reuse 数据reuse
一个很经典的案例
我们之前 MapReduce
做迭代计算的时候
大家注意到这张Link表
关系表
也就是说 每轮迭代的时候
MapReduce
都会把这张Link表
以及PageRank表
写入HDFS
在下一轮迭代重新加载
所以 这个造成了大量的
无效的IO开销和网络开销
可以看到Spark
将这张Link表catch以后
这张表在后面的迭代
按照partition
它一直都在加载内存
而在本轮迭代的Map以后
这个Map操作的Shuffle
是与这个关系表的
partition是一致的
所以 保证了这个
Map的本地化
Join的本地化
可以看到
关系表先去
Join这个初始化的Link
然后 这两个dataset 这两个RDD
按照partition去Shuffle切齐的
所以 这个Join都是本地命中
然后 一个URL命中
它的初度以后
通过一个flag map
由一个list变成多个数据
然后每个数据
去把它的新的Map
在向它自己的初边发射出去
而这个emit
这个Shuffle
又会组成新的PageRank的RDD
可以看到最底下这个reduceby
就把它所有的入度
给它的PageRank更新值
算出一个最终的rank值
然后进行下一轮迭代
Flink也是最近
在阿帕奇孵化的一个项目
当然 Flink改了一个名字
在几年前
在德国的一个学术机构
就已经在做这个Flink
Flink 这张图是非常有意思的
Flink跟Spark最大不同
在于它引入了一个
Pipeline的执行框架
所以 就如同我们之前介绍的
统一计算框架里头
MML分Batch是一样
所以大家可以看到这张图表
当数据量超过了物理内存的
界限的时候Spark
要进行计算的时候
它一定要通过
因为Spark还是一个stage by stage
就算串行的计算系统
它一定要通过
我们刚刚说的落盘的
sort merge
所以 它的计算时间是
计算的延时是线性成长上去
而Flink类似于分Batch运行
所以 每批次它都可以
进行内存操作
这是一个实测的结果图
当然 Flink在迭代计算
也有一些特殊的考量
比如说它的delta计算
也就是说 大量研究表明
类似于像PageRank这样计算
百分之三四十的节点
其实是在最初的十轮迭代
后面的值
迭代更新已经不显著
所以 它们完全可以不参与
后阶段的迭代计算
这样就可以
节省大量的Shuffle
网络资源和IO资源
Flink支持用户编写
非常容易的代码
来进行早停
也就是说 节点在
收敛度数不大的情况下
进行早停
大量的计算可以避免
所以 大家也可以看这张图
在引入delta计算以后
Flink的迭代收敛速度
大大提高
所以 返回到这个例子
我们再去看
其实 在大规模数据下
stage by stage的模型
其实不可避免的
超过物理内存的界限
而使整个计算延迟 加剧
我们到底采用怎么样的技术
使得即便数据量超过内存的
物理界限
而我们又可以进行
完全的内存计算
我们正在在这个方面进行大量的尝试
大家可以看到
内存计算和统一计算框架
近期发展非常迅速
但远远还没有达到
我们期望的阶段
尚有大量的技术难点
有待我们去攻克
在这个领域
仍然有非常多的机会
和非常大的空间
等待同学们去攻克
那我和大家的分享就到这里
谢谢大家
-主讲人:武永卫
-主讲人:程永
-QUIZ--作业
-大纲
-初步认识大数据对分布式存储系统的需求
-理解大数据对分布式存储系统的需求
-具体说明大数据对分布式存储系统的需求
-大规模分布式存储的挑战
-小概率事件-Raid卡故障
-分布式存储系统举例
-分布式存储系统重要功能设计要点剖析
-链式写正常流程
-写流程的另一种常见方式:主从模式
-链式写异常流程
-写异常处理的另一种方法-Seal and New
--写异常处理的另一种方法-Seal and New(主讲人:姚文辉)
-读正常流程
-读流程优化-BackupRead
-IO QoS
-数据正确性:checksum
-数据可靠性-Replication
-数据均衡-Rebalance
-垃圾回收-Garbage collection
--垃圾回收-Garbage collection(主讲人:姚文辉)
-Erasure coding
-Erasure coding(3,2)写入和读取过程
--Erasure coding(3,2)写入和读取过程(主讲人:姚文辉)
-元数据管理的高可用性和可扩展性
-元数据管理的高可用性
-Paxos概要
-Raft
-元数据管理的可扩展性
-不同存储介质的特性
-盘古混合存储
-QUIZ--作业
-阿里云飞天分布式调度
-任务调度
-资源调度
-容错机制
-规模挑战
-安全域性能隔离
-分布式调度的发展方向
-QUIZ--作业
-数据格式和抽象
-分布式编程模型
-MapReuduce编程模型
-关系型数据编程模型
-分布式图计算模型
-分布式编程未来展望
-QUIZ--作业
-分布式事务
-分布式一致性算法
-两阶段提交与三阶段提交
-实践--介绍
-关系型计算基本原理_1
-关系型计算基本原理_2
-分布式环境中的连接计算和聚合计算
-其他计算和物理优化
-QUIZ--作业
-提纲
-课程背景介绍
-前序知识
-分布式节点距离计算法则
-数据分布策略
-分布式计算调度
-数据就近原则计算如何容错
-ODPS跨集群数据依赖
-QUIZ--作业
-主讲人:谢德军
--实践2:编写MR完成Group By+Join操作(主讲人:谢德军)
-增量计算和流式计算
-与批量计算的区别
-业界典型系统技术概要分析
-核心技术
-消息机制
-有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制
--有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制(主讲人:强琦)
-StreamSQL
-QUIZ--作业
-软硬件趋势、分布式计算简史与内存计算
-分布式计算
-内存计算
-统一的计算框架
-业界经典系统技术分析-spark&flink
--业界经典系统技术分析-spark&flink(主讲人:强琦)
-QUIZ--作业
-主讲人:褚葳
-QUIZ--作业
-分布式环境下的新问题
-工程实现范例
-课程设计相关问题