Twitter 新一代流处理利器——Heron 论文笔记之Storm Limitations
来源:互联网 发布:健身房软件哪个好 编辑:程序博客网 时间:2024/06/03 18:21
Twitter 新一代流处理利器——Heron 论文笔记之Storm Limitations
标签(空格分隔): Streaming-Processing
Storm Problems
scalability, debug-ability, manageability, and efficient sharing of cluster resources with other data services。
Storm Worker Architecture: Limitations
- Storm的worker就是一个JVM进程,每个worker可以跑多个executor,目前根据Storm现有的调度机制,我们无法确定那个task被分配到了哪个worker上,哪台物理机器上。
- 由于不知道task被分配到哪个worker上,有可能是同一个,考虑join的情况,一个join task和一个output 到 DB Store或其他存储的task被分配到同一个worker,这样性能可能无法保证
- 当前正在跑的topology如果重启的话,之前分派在同一个worker的task由于toplogy重启,可不能不会再被分配到同一个worker上,这给debug带来了困难。
- Storm 提供自己实现的isolate 调度,但是要交于开发人员来分配集群资源是个及其不好的做法。
- 资源分配浪费。Storm假设每个worker都是homogenous,这种做法经常会造成在资源预的超额分配。例如3个spouts和1个bolt,加入每个spout和bolt各自需要5G和10G内存,这样的话,topoogy必须为每个worker预留15G的内存来跑一个spout和一个bolt,如果用户设置worker数为2,那么两个worker就要总共预留30G内存,但是实际上只需要 3*5 + 1 *10 = 25G内存,这样就浪费了5G。
- 如果对一个worker进行heap dump时,可能会阻塞worker hearbeats的发送,导致supervisor认为该worker心跳超时,kill 和重启了该worker
- worker用thread和queue来做tuple的接收和发送,每个worker有一个receive-thread接收上游tuple,一个全局send-thread负责往下游发送tuple,然后executor有一个logic-thread来执行用户的代码逻辑,最后有一个本地的send-thread来做logic-thread和全局send-thread做数据通信,到这里,一个tuple需要从进入一个worker到出来总共要通过4个thread转发。
Issues with the Storm Nimbus
Storm的NImbus任务很多很艰巨,包括调度,监听,分发JAR等等,topology多的时候,Nimbus将变成瓶颈。
- Nimbus调度器不支持worker细粒度的resource reservation和isolation。不同topology的worker被分配到了同一个物理node上,很有可能会相互影响。
- Storm利用Zookeeper来存储worker和supervisor以及executor的心跳信息。如果topology很多,每个topology的并发很多,这样Zookeeper就是瓶颈。
- 就是老生常谈的nimbus单点故障,Nimbus不是HA。
Lack of Backpressure
Storm没有backpressure机制,如果下游接收数据的component没有及时处理数据的话,发送者就会drop message。这是一种fail-fast机制,也很简单,但是有以下缺点:
- If acknowledgements are disabled, this mechanism will resultin unbounded tuple drops, making it hard to get visibility about these drops.
- Work done by upstream components is lost.
- System behavior becomes less predictable.
Efficiency
- Suboptimal replays
- Long Garbage Collection cycles
- Queue contention
未完待续,下次讲述Twitter的新利器——Heron的架构以及是如何解决上述Storm存在的问题的
Reference
- Twitter Heron: Stream Processing at Scale
- Flying faster with Twitter Heron
0 0
- Twitter 新一代流处理利器——Heron 论文笔记之Storm Limitations
- Twitter 新一代流处理利器——Heron 论文笔记之Heron架构
- Heron:Twitter的新一代流处理引擎
- Heron:Twitter的新一代流处理引擎
- 深度揭秘Twitter的新一代流处理引擎Heron
- Heron:来自Twitter的新一代流处理引擎应用篇
- Heron-新一代实时流处理
- Heron 新一代流处理框架详解
- 【转载】Heron 新一代流处理框架详解
- Twitter Heron:大规模流处理系统
- Twitter Heron阅读笔记
- Twitter Heron:流式计算Storm的升级版
- 流处理系统Heron——architecture
- TOP100summit:【分享实录】Twitter 新一代实时计算平台Heron
- twitter Heron
- Twitter Heron的深入解析(与Storm的比较)
- Heron(一)—-storm的一些短板
- Heron(一)—-storm的一些短板
- WebStorm 打开多个项目的方法
- KETTLE一行一行执行方法
- Java基础复习之三:单例模式
- Android的ViewAnimator及其子类ViewSwitcher-android学习之旅(三十三)
- java动态代理(JDK和cglib)
- Twitter 新一代流处理利器——Heron 论文笔记之Storm Limitations
- Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC
- SEO优化的四个建议
- Android Java面试——语言基础
- poj1195 Mobile phones
- 异常详细信息: System.Data.SqlClient.SqlException:用户 'IIS APPPOOL\DefaultAppPool' 登录失败解决办法
- Android中使用HTTP服务
- WordPress 主题制作常用函数
- [c++]派生类的应用