且听书吟

  • 首页
  • 关于
  • 留言
  • 友链
  • 笔记
  • 代码
且听书吟

OneAPM 工作两年总结

2017-10-17

首先我们考察的便是 Spark,Spark 最大的问题是需要我们人为指定计算的时间窗口,计算的数据也是批量的那种而非单条,这和告警的业务需求本身就不匹配。

因为当时我们想设计的告警计算是实时的,而非定时。Spark Streaming 在后面还因为执行模式进一步被我们淘汰。

Strom 各方面其实都蛮符合我们需求的,它也能实现所谓的单条实时计算。但是,它的计算节点不持有计算状态,某些时候的窗口数据,是需要有类似 Redis 一类的外部存储的。

Flink优势:

Spark 有的功能 Flink 基本都有,流式计算比 Spark 支持要好。

  1. Spark是基于数据片集合(RDD)进行小批量处理,所以Spark在流式处理方面,不可避免增加一些延时。
  2. 而 Flink 的流式计算跟 Storm 性能差不多,支持毫秒级计算,而 Spark 则只能支持秒级计算。
  3. Flink 有自动优化迭代的功能,如有增量迭代。它与 Hadoop 兼容性很好,还有 pipeline 模式增加计算性能。

这里,我需要重点说一下 pipeline 模式。

Staged execution 就如它的名字一样,数据处理分为不同的阶段,只有一批数据一个阶段完全处理完了,才会去执行下一个阶段。典型例子就是 Spark Streaming

Pipeline 则是把执行串行在了一起,只有有计算资源空闲,就会去执行下一个的操作。在外部表象是只有一个阶段。

上面的不好理解,我们思考一个更形象的例子:

某生产线生产某钟玩具需要A,B,C三个步骤,分别需要花费10分钟,40分钟,10分钟,请问连续生产n个玩具大概需要多少分钟?

总结:

stage的弊端是不能提前计算,必须等数据都来了才能开始计算(operateor等数据,空耗时间)。pipeline的优势是数据等着下一个operateor有空闲就立马开始计算(数据等operateor ,不让operateor闲着,时间是有重叠的)

综合前面的调研分析,我们有了上面这张表格。对于我们而言,其实在前面的分析中 Flink 就已经被我们考虑了,尤其是它还有能与 Hadoop 体系很好地整合这种加分项。

1 2 3 4 5 6 7 8 9 10 11 12
9
评论 (2)
再想想
  • ricky.li

    感谢博主,收获很多,个人觉得整个架构重点在关注数据流式处理和存储,为什么不考虑用类似influxdb等时序数据库引擎实现呢?

    2022-05-25 回复
  • xzy

    雨帆大佬,这篇文章写的是非常好啦。小弟还有些不懂的地方,可以求个认识么?邮箱是QQ也是微信。

    2019-08-15 回复
随机文章
  • 亦行亦走
  • 当青春不再魔法散场
  • 杂思——点滴记录
  • 19岁的“雨季”
  • 开始 · 起点 · 轮回
  • 汐阳
近期评论
  • 快乐编程,快乐生活发表在《碗》
  • 快乐编程,快乐生活发表在《大三暑期实训记》
  • 涉水轻舟发表在《关于我》
  • 快乐编程,快乐生活发表在《随想——陌生》
  • ricky.li发表在《OneAPM 工作两年总结》
  • 奈叶大魔王发表在《写给十年后的自己》
文章标签
人生 同人 回忆 小说 影评 思考 悠久之翼 情感 成长 文字 时光 未来 杂思 梦想 爱情 童年 记忆 随想 青春 高考
订阅博客
Copyright © 2011-2022 且听书吟. Designed by nicetheme.
萌ICP备 20200318号