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. 30第二建筑Github Page

    从我原来博客的前端传输.链接:http://www.hacke2.cn/create-github-page/ 假设中国每一个程序猿都写博客,那么中国IT届的春天就来了 有同学问我的站点是怎么创建的, ...

  2. windows服务的创建、安装和调试

    1.创建 windows服务 项目   文件 -> 新建项目 -> 已安装的模板 -> Visual C# -> windows ,在右侧窗口选择"windows 服 ...

  3. WPF自定义圆形按钮样式资源文件

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...

  4. gcc的bug? c++模板类中友元函数的訪问权限问题

    原文地址:http://stackoverflow.com/q/23171337/3309790 在c++中,模板类中能够直接定义一个友元函数.该函数拥有訪问该模板类非public成员的权限. 比方: ...

  5. mybatis配置文件xxxx.xml中缺失返回类型的后果A query was run and no Result Maps were found

    使用mybatis时出现异常问题: 有如下的错误 Error querying database.  Cause: org.apache.ibatis.executor.ExecutorExcepti ...

  6. 基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql高性能php平台

    一.安装准备 1.1平台环境: CentOS 5.4 x86_64 GNU/Linux nginx-0.8.21 php-5.2.9 spawn-fcgi-1.6.3 mysql-5.1.34 .2系 ...

  7. 关于Relay Log无法自己主动删除的问题(Neither --relay-log nor --relay-log-index were used)

    今天查看mysql err日志.发现mysql重新启动时总会有例如以下日志出现: [Warning] Neither --relay-log nor --relay-log-index were us ...

  8. 它们的定义AlertDialog(二)

    先来看主页面布局 main_activity.xml里面仅仅有一个button(加入点击事件.弹出载入框) 再看MainActivity package com.example.loadingdial ...

  9. iOS: NSMutableArray的方法removeObject:inRange:

    - (void)removeObject:(id)anObject inRange:(NSRange)aRange

  10. Preference如何增加在activity生命周期监听器

    转载请注明出处:http://blog.csdn.net/droyon/article/details/41313115 本文主要介绍Preference凭什么Activit一些逻辑的生命周期,使. ...