作家
登录

流计算框架Flink与Storm的性能对比

作者: 来源: 2017-11-20 15:17:01 阅读 我要评论

Sleep 用例重要模仿用户功课耗时较长的场景,反竽暌钩复杂用户逻辑对框架差别的减弱,比较两个框架的调剂机能。

输入数据和输出数据均与 Identity 雷同。

读入数据后,等待一准时长(1 ms)后在字符串末尾追加时光戳后输出

流计算框架 Flink 与 Storm 的机能比较

Windowed Word Count

Windowed Word Count 用例重要模仿窗口统计场景,反竽暌钩两个框架在进行窗口统计时机能的差别。

此外,还用其进行了精确计算场景的测试,反竽暌钩 Flink 正好一次送达的机能。

输工资 JSON 格局,包含 msgId、eventTime 和一个由若干单词构成的句子,单词之间由空格分隔。单条输入数据约 150 B。

读入数据后解析 JSON,然后将句子瓜分为响应悼?船带 eventTime 和 inTime 时伎佳棰给 CountWindow 进行悼?雌数,同时记录一个窗口中最大年夜最小的 eventTime 和 inTime,最后带 outTime 时光戳输出到 Kafka 响应的 Topic。

Spout/Source 及 OutputBolt/Output/Sink 并发度恒为 1,增大年夜并发度时仅增大年夜 JSONParser、CountWindow 的并发度。

因为 Storm 对 window 的支撑较弱,CountWindow 应用一个 HashMap 手动实现,Flink 用了原生的 CountWindow 和响应的 Reduce 函数。

流计算框架 Flink 与 Storm 的机能比较

5. 测试结不雅

5.1 Identity 单线程吞吐量

流计算框架 Flink 与 Storm 的机能比较

上图中蓝色柱形为单线程 Storm 功课的吞吐,橙色柱形为单线程 Flink 功课的吞吐。

Identity 逻辑下,Storm 单线程吞吐为 8.7 万条/秒,Flink 单线程吞吐可达 35 万条/秒。

当 Kafka Data 的 Partition 数为 1 时,Flink 的吞吐约为 Storm 的 3.2 倍;当其 Partition 数为 8 时,Flink 的吞吐约为 Storm 的 4.6 倍。

由此可以看出,Flink 吞吐约为 Storm 的 3-5 倍。

5.2 Identity 单线程功课延迟

流计算框架 Flink 与 Storm 的机能比较

采取 outTime – eventTime 作为延迟,图中蓝色折线为 Storm,橙色折线为 Flink。虚线为 99 线,实线为中位数。

大年夜图中可以看出跟着数据量逐渐增大年夜,Identity 的延迟逐渐增大年夜。个中 99 线的增赶紧度比中位数快,Storm 的 增赶紧度比 Flink 快。

比较折线最右端的数据可以看出,Storm QPS 接近吞吐时延迟中位数约 100 毫秒,99 线约 700 毫秒,Flink 中位数约 50 毫秒,99 线约 300 毫秒。Flink 在满吞吐时的延迟约为 Storm 的一半。

5.3 Sleep 吞吐量

流计算框架 Flink 与 Storm 的机能比较

大年夜图中可以看出,Sleep 1 毫秒时,Storm 和 Flink 单线程的吞吐均在 900 条/秒阁下,且跟着并发增大年夜根本呈线性增大年夜。

比较蓝色和橙色的柱形可以发明,此时两个框架的吞吐才能根本一致。

5.4 Sleep 单线程功课延迟(中位数)

依然采取 outTime – eventTime 作为延迟,大年夜图中可以看出,Sleep 1 毫秒时,Flink 的延迟仍低于 Storm。

5.5 Windowed Word Count 单线程吞吐量

流计算框架 Flink 与 Storm 的机能比较

单线程履行大年夜小为 10 的计数窗口,吞吐量统计如图。

大年夜图中可以看出,Storm 吞吐约为 1.2 万条/秒,Flink Standalone 约为 4.3 万条/秒。Flink 吞吐依然为 Storm 的 3 倍以上。

5.6 Windowed Word Count Flink At Least>流计算框架 Flink 与 Storm 的机能比较

Identity 和 Sleep 不雅测的都是 outTime – eventTime,因为功课处理时光较短或 Thread.sleep() 精度不高,outTime – inTime 为零或没有比较意义;Windowed Word Count 中可以有效测得 outTime – inTime 的数值,将其与 outTime – eventTime 画在同一张图上,个中 outTime – eventTime 为虚线,outTime – InTime 为实线。

不雅察橙色的两条折线可以发明,Flink 用两种方法统计的延迟都保持在教逑堤度;不雅察两条蓝色的曲线可以发明,Storm 的 outTime – inTime 较低,outTime – eventTime 一向较高,即 inTime 和 eventTime 之间的差值一向较大年夜,可能与 Storm 和 Flink 的数据读入方法有关。

蓝色折线注解 Storm 的延迟随数据量的增大年夜而增大年夜,而橙色折线注解 Flink 的延迟跟着数据量的增大年夜而减小(此处未测至 Flink 吞吐量,接近吞吐时 Flink 延迟依然会上升)。


  推荐阅读

  大数据要怎么用,12名创业者这样说

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 当下,大年夜多半企业都明白大年夜数据的感化。大年夜数据——这个宏大年夜甚至是有时是胜过性>>>详细阅读


本文标题:流计算框架Flink与Storm的性能对比

地址:http://www.17bianji.com/lsqh/39040.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)