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

  1. Storm的worker就是一个JVM进程。每一个worker能够跑多个executor。眼下依据Storm现有的调度机制。我们无法确定那个task被分配到了哪个worker上。哪台物理机器上。
  2. 因为不知道task被分配到哪个worker上。有可能是同一个,考虑join的情况,一个join task和一个output 到 DB Store或其它存储的task被分配到同一个worker。这样性能可能无法保证
  3. 当前正在跑的topology假设重新启动的话,之前分派在同一个worker的task因为toplogy重新启动。可不能不会再被分配到同一个worker上,这给debug带来了困难。
  4. Storm 提供自己实现的isolate 调度,可是要交于开发者来分配集群资源是个及其不好的做法。
  5. 资源分配浪费。

    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。

  6. 假设对一个worker进行heap dump时。可能会堵塞worker hearbeats的发送,导致supervisor觉得该worker心跳超时,kill 和重新启动了该worker
  7. 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将变成瓶颈。

  1. Nimbus调度器不支持worker细粒度的resource reservation和isolation。不同topology的worker被分配到了同一个物理node上。非常有可能会相互影响。
  2. Storm利用Zookeeper来存储worker和supervisor以及executor的心跳信息。假设topology非常多,每一个topology的并发非常多。这样Zookeeper就是瓶颈。
  3. 就是老生常谈的nimbus单点故障。Nimbus不是HA。

Lack of Backpressure

Storm没有backpressure机制,假设下游接收数据的component没有及时处理数据的话,发送者就会drop message。这是一种fail-fast机制,也非常easy,可是有下面缺点:

  1. If acknowledgements are disabled, this mechanism will resultin unbounded tuple drops, making it hard to get visibility about these drops.
  2. Work done by upstream components is lost.
  3. System behavior becomes less predictable.

Efficiency

  • Suboptimal replays
  • Long Garbage Collection cycles
  • Queue contention

未完待续,下次讲述Twitter的新利器——Heron的架构以及是怎样解决上述Storm存在的问题的

Reference

  1. Twitter Heron: Stream Processing at Scale
  2. Flying faster with Twitter Heron

$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('

    ').addClass('pre-numbering').hide();
    $(this).addClass('has-numbering').parent().append($numbering);
    for (i = 1; i ').text(i));
    };
    $numbering.fadeIn(1700);
    });
    });

    版权声明:本文博主原创文章,博客,未经同意不得转载。

Twitter 新一代流处理工具——Heron 该纸币Storm Limitations的更多相关文章

  1. Twitter 新一代流处理利器——Heron 论文笔记之Heron架构

    Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...

  2. Twitter的流处理器系统Heron——升级的storm,可以利用mesos来进行资源调度

    2011年,Twitter发布了开源的分布式流计算系统Storm.四年后,随着用户数量的急剧增加,Twitter每天要处理的事件已经增加到十亿以上.Storm系统应对如此庞大而复杂多样的流数据变得十分 ...

  3. TOP100summit:【分享实录】Twitter 新一代实时计算平台Heron

    本篇文章内容来自2016年TOP100summit Twitter technical lead for Heron Maosong Fu 的案例分享. 编辑:Cynthia Maosong Fu:T ...

  4. 推荐一款Diffy:Twitter的开源自动化测试工具

    1. Diffy是什么 Diffy是一个开源的自动化测试工具,是一种Diff测试技术.它能够自动检测基于Apache Thrift或者基于HTTP的服务.通过同时运行新/老代码,对比运行结果,发现潜在 ...

  5. 新一代服务器性能测试工具Gatling

    新一代服务器性能测试工具Gatlinghttp://automationqa.com/forum.php?mod=viewthread&tid=2898&fromuid=2

  6. Gatling新一代压力测试工具,新一代服务器性能测试工具Gatling

    Gatling新一代压力测试工具新一代服务器性能测试工具Gatlinghttp://www.infoq.com/cn/articles/new-generation-server-testing-to ...

  7. java常用流处理工具StreamTool 常见的InputStream流转字符串, 转字节数组等等

    ava 常用流处理工具 StreamTool ,常见的InputStream 流转字符串, 转字节数组等等 **应用场景: ** 1. 文件上传 2. js / css / img 等文件读取输出. ...

  8. IO流的工具类

    1.需要先导入jar包: FilenameUtils import org.apache.commons.io.FilenameUtils; public class FilenameUtilesDe ...

  9. 11、Linux基础--sort、uniq、cut、tr、wc、流处理工具sed

    笔记 1.晨考 1.写出过滤手机号的正则表达式 1[0-9]{10} 2.写出过滤邮箱的正则表达式 chenyang@123.com [a-zA-Z0-9-_]+@[a-z0-9]+\.(com|cn ...

随机推荐

  1. SE 2014年4月17日

    描述BGP路由属性 MED.首选值 的特点 MED相当于IGP协议中的度量值,在其他条件相同时,当本自治系统有多条到达外部自治系统的链路时,MED值小的路由优选.MED属性只能在两个自治系统间传递. ...

  2. Python-方法重载的问题

    定义一个父类,在写一个子类继承他,重载他的foo方法: class Father: def foo(self): print"I am father" class Son(Fath ...

  3. mindmanager2012打开文件出现runtime error r6025 解决方式

    关于mindmanager 2012启动无法执行,提示c++错误 ---------------------------Microsoft Visual C++ Runtime Library---- ...

  4. BC 2015在百度之星程序设计大赛 - 预赛(1)(KPI-树董事长)

    KPI Accepts: 517 Submissions: 2185 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 ...

  5. linux进程解析--进程的退出及销毁

    一进程的退出: 当一个进程运行完毕或者因为触发系统异常而退出时,最终会调用到内核中的函数do_exit(),在do_exit()函数中会清理一些进程使用的文件描述符,会释放掉进程用户态使用的相关的物理 ...

  6. Visual Studio跨平台开发实战(1) - Hello Xamarin!

    原文 Visual Studio跨平台开发实战(1) - Hello Xamarin! 前言 应用程式发展的脚步, 从来没有停过. 从早期的Windows 应用程式, 到网路时代的web 应用程式, ...

  7. Apache介绍

    怎样使用Apache许可证         若用户须要应用Apache许可证,请将下面演示样例使用适当的注视方法包括在作品源文件里,将括号"[]"中的字段以用户自身的区分信息来替换 ...

  8. The app references non-public selectors in payload With Xcode6.1

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: p=591" style="color: rgb(255, 97, 0 ...

  9. 第4周 页面限制8060 bytes

    原文:第4周 页面限制8060 bytes 恭喜您!在你面前就只剩下几页了,然后你就可以完成第1个月的SQL Server性能调优培训了.今天我将讲下页的一些限制,还有为什么你会喜欢这些限制,同时也会 ...

  10. 浏览器被劫持到http://hao.169x.cn/?v=108的解决办法

    不管什么浏览器打开都是 http://hao.169x.cn/?v=108 ​1.下载wmi tool,(微软官网下载,我的下载地址是: http://120.52.73.52/download.mi ...