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. Redis启动多端口,运行多实例(转)

    使用redis在同一台机器上,启用多个端口,实现多个实例,完成集群的模拟实现. 启动多实例 redis默认启动端口为6379,我们可以使用 --port 来指定多个端口,如下,在linux终端命令: ...

  2. sleep和wait的区别

    sleep指线程被调用时,占着CPU不工作,形象地说明为“占着CPU睡觉”,此时,系统的CPU部分资源被占用,其他线程无法进入,会增加时间限制.wait指线程处于进入等待状态,形象地说明为“等待使用C ...

  3. openfire插件开发的几点说明

    1.关于插件的目录结构 这个网上的资料很多,但是我觉得要看懂也不太容易,我这里上一个包括了jsp和servlet的图,希望大家能马上看懂: ME的Navigator视图下的截图: build path ...

  4. BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第15章节--开发SP2013工作流应用程序 总结

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第15章节--开发SP2013工作流应用程序 总结         在SP2013中,工作流已经从SP Server中脱离 ...

  5. sharepoint 2013 userprofile 用户信息

    Sharepoint2013获得当前用户userfrofile 基本介绍: 什么使用户配置文件. 用户属性和用户配置文件属性提供有关 SharePoint 用户的信息,如显示名称.电子邮件.标题以及其 ...

  6. 大页(huge pages) 三大系列 ---计算大页配置参数

    使用以下shell 脚本来计算大页配置参数,确保使用脚本实例之前的数据已经开始, 如果数据库的版本号11g,确认是否使用自己主动的内存管理(AMM) +++++++++++++++++++++++++ ...

  7. hdu2457 Trie图+dp

    hdu2457 给定n个模式串, 和一个文本串 问如果修改最少的字符串使得文本串不包含模式串, 输出最少的次数,如果不能修改成功,则输出-1 dp[i][j] 表示长度为i的字符串, 到达状态j(Tr ...

  8. C++ 建设者继承

    微通道公用号CodingRush 分享编程.算法.机器人leanring.数据挖掘.推荐系统.知识大数据计算框架,欢迎扫码关注. 子类继承了哪些东西? 子类在继承父类的时候,父类的public成员变量 ...

  9. 这么多的技术,作为一个freshman,什么研究?

    科学技术,从哪里学习?        杨问了我几个最近:"如何学习技术?".说实话,其实,我自己只是一个资深兄弟.对于这个答案.这是更难以在本身回答. 可是.既然比师弟们多吃了几年 ...

  10. oracle错误之 ora-01017

    ora-01017 现象描述: scott用户和其它建立的用户,都登的上.但sys和system用户登录不上 方案一(试过,不行): 1,打开目录:F:\app\Administrator\produ ...