Flink 的引入

这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有 Hadoop、 Storm,
以及后来的 Spark,他们都有着各自专注的应用场景。Spark 掀开了内存计算的先河,也以
内存为赌注,赢得了内存计算的飞速发展。 Spark 的火热或多或少的掩盖了其他分布式计
算的系统身影。就像 Flink,也就在这个时候默默的发展着。在国外一些社区,有很多人将
大数据的计算引擎分成了 4 代,当然,也有很多人不会认同。我们先姑且这么认为和讨论。
首先第一代的计算引擎,无疑就是 Hadoop 承载的 MapReduce。这里大家应该都不会对
MapReduce 陌生,它将计算分为两个阶段,分别为 Map 和 Reduce。对于上层应用来说,就
不得不想方设法去拆分算法,甚至于不得不在上层应用实现多个 Job 的串联,以完成一个
完整的算法,例如迭代计算。
由于这样的弊端,催生了支持 DAG 框架的产生。因此,支持 DAG 的框架被划分为第二
代计算引擎。如 Tez 以及更上层的 Oozie。这里我们不去细究各种 DAG 实现之间的区别,
不过对于当时的 Tez 和 Oozie 来说,大多还是批处理的任务。
接下来就是以 Spark 为代表的第三代的计算引擎。第三代计算引擎的特点主要是 Job
内部的 DAG 支持(不跨越 Job) ,以及强调的实时计算。在这里,很多人也会认为第三代计
算引擎也能够很好的运行批处理的 Job。随着第三代计算引擎的出现,促进了上层应用快速
发展,例如各种迭代计算的性能以及对流计算和 SQL 等的支持。Flink 的诞生就被归在了
第四代。这应该主要表现在 Flink 对流计算的支持,以及更一步的实时性上面。当然 Flink
也可以支持 Batch 的任务,以及 DAG 的运算。首先,我们可以通过下面的性能测试初步了
解两个框架的性能区别,它们都可以基于内存计算框架进行实时计算,所以都拥有非常好的
计算性能。经过测试,Flink 计算性能上略好。
测试环境:
1.CPU:7000 个;
2.内存:单机 128GB;
3.版本:Hadoop 2.3.0,Spark 1.4,Flink 0.9
4.数据:800MB,8GB,8TB;
5.算法:K-means:以空间中 K 个点为中心进行聚类,对最靠近它们的对象归类。通过
迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。
6.迭代:K=10,3 组数据


Spark 和 Flink 全部都运行在 Hadoop YARN 上,性能为 Flink > Spark > Hadoop(MR),
迭代次数越多越明显,性能上,Flink 优于 Spark 和 Hadoop 最主要的原因是 Flink 支持
增量迭代,具有对迭代自动优化的功能。
Flink 和 spark 的差异

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值