说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Twitter开源Summingbird:近原生编码下整合批处理与流处理

HTML文档下载 WORD文档下载 PDF文档下载
近日,Twitter开源了名为Summingbird的数据分析工具。区别于以往的更快、更准确节奏,Summingbird更注重于流处理与批处理的无缝整合,以及编程语言的原生化。

根据使用场景不同,大数据处理逐渐的发展向两个极端——批处理和流处理。其中流处理更注重于数据的实时分析,代表工具有Storm及S4。而批处理更注重于数据的长期挖掘,典型的工具则是从Google 三大论文上衍生的Hadoop。

随着数据的“爆棚”,各个公司在大数据的处理上可谓是绞尽脑汁,目的无非就是更快、更准。然而近日Twitter 开源的新工具Summingbird却打破了这个节奏,在流处理与批处理的无缝整合上更进了一步。


开发背景

众所周知,Twitter的系统基本上完成了面向服务的架构转变,而众多服务对数据处理也有着不同的需求,从而无可避免的出现这种情况:类似Trending Topics及搜索服务在开始时有实时处理的需求,而数据的价值却需要经过最终的深度挖掘——批处理。这样减少转换时开销的重要性就显而易见了,Summingbird应运而生。

Sunmmingbird

相关简介

Twitter在9月3日开源了一个名为Summingbird的大数据处理系统,通过整合批处理与流处理来减少它们之间的转换开销。

从Twitter对Summingbird的介绍还得知,开发者可以使用非常接近原生的Scala或者Java 在Summingbird上执行MapReduce作业,下面着眼一个使用纯粹Scala编写的word-counting示例:

def wordCount(source: Iterable[String], store: MutableMap[String, Long]) =  source.flatMap { sentence =>    toWords(sentence).map(_ -> 1L)  }.foreach { case (k, v) => store.update(k, store.get(k) + v) }

而在Summingbird做word-counting则需要这样的代码

def wordCount[P <: Platform[P]]  (source: Producer[P, String], store: P#Store[String, Long]) =    source.flatMap { sentence =>      toWords(sentence).map(_ -> 1L)    }.sumByKey(store)

不难看出他们有着相同的逻辑和近乎完全相同的代码,然而不同的是,你既可以使用Summingbird项目做“批处理”(Scalding),也可以使用它做“实时处理”(使用Storm);同时,你还可以使用两种模式的混合给应用程序带来无与伦比的容错性。

核心观念

Summingbird作业会产生两种类型的数据:流(stream)和快照(snapshot)。流包含了数据的所有历史,Store则是包含了系统在指定时间的快照。Summingbird核心通过众多组件实现:

  • Producer——Producer是Summingbird的数据流抽象,用以传递给特定Platform做MapReduce流编译。
  • Platform——Platform实例可以用于任何流MapReduce库的实现,Summingbird库包含了Platform对Storm、Scalding及内存处理的支持。
  • Source——Source代表了一个数据的源,每个系统都对数据源有自己的定义,比如Memory平台将Source[T]定义为任何TraversableOnce[T]。
  • Store——Store是Summingbird中流MapReduce进行“reduce”操作的场所,Store包含了所有键对应值聚合的快照。
  • Sink——不同于Store,Sink允许你形成一个体现Producer值的非聚合流,sink是流而不是快照。
  • Service——Service允许用户在Producer流中当前值上执行“lookup join”或者是“leftJoin”,被连接的值可以是来自另一个Store的快照,也可以是另一个Sink的流,甚至来自一些其它的异步功能。
  • Plan—— Plan由Platform调用platform.plan(producer)产生,作为MapReduce流的最终实现。对于Storm来说,Plan就是个StormTopology实例,用户可以通过Storm提供的方法执行。对于Memory平台来说,Plan就是个内存Stream,包含了被传递Producer提供的输出内容。

详细内容请访问:Summingbird的核心概念

相关项目

Summingbird催生了大量的子项目,其中必须关注的有:

  • Algebird——Scala的抽象代数库,Algebird中的众多数据结构都经Monoid实现,让他们能更好的进行Summingbird聚合。
  • Bijection——Summingbird使用Bijection项目的Injection在不同客户端和执行平台间共享序列化。
  • Chill——Summingbird的Storm及Scalding平台都使用了Kryo库做序列化处理,Chill是对Kryo一个很好的补充,其中包括许多可用配置选项,并且提供了Storm、Scala、Hadoop的使用模型。Chill同样也在伯克利Amp实验室的Spark中使用。
  • Tormenta——Tormenta在Storm的Scheme及Spout接口上提供了类型安全层。
  • Storehaus——Summingbird客户端通过 Storehaus的异步键值储存特性实现,Storm平台利用了 Storehaus的MergeableStore特性,以达到一些常用后备存储的实时聚合,包括memcache及Redis。

未来计划

  • 支持更多的平台, Spark及 Akka“首当其冲”
  • Producer图层的可插式优化
  • 支持可过滤的数据源,比如 Parquet
  • 为Producer基元注入更高级的数学及机器学习代码
  • 通过相关项目,实现更多扩展
  • 通过公共数据源释放更多的教程

更多详细信息访问Summingbird HomePage及Summingbird问题跟踪,Summingbird  GitHub下载页。

新浪微博商业化:大树底下真的好乘凉吗? 亲爱的GitHub,我们怎么访问不了你? 经典神作《魂斗罗》iOS版今日上线 专访最强夫妻店:“神庙逃亡2”开发背后的故事 我们做错了什么?3周了,一毛钱也没赚到! 开源产品系列:简单强大的模板语言JSON Template 十年历史的KDE bug修复 为什么函数式编程在Java中很危险? Android平台获X11协议支持,手机变身绘图板 Rackspace通过OpenStack和定制OCP服务器节省40%成本 美国人是如何利用大数据的应用来防止流感的蔓延 W3C北航总部成立:招兵买马增强中国标准声音 Mozilla推出开发者预览版Firefox OS智能手机 强强联合?传微软投30亿参与Dell私有化 微软发布Windows Phone 7.8 SDK更新 Amazon账号将支持内付费 道具可登畅销榜 裸照门:500px应用被苹果踢出App Store APP的魔法:三个杭州小伙做手游吸金千万 Facebook与Google,巨人们将在移动端决胜负 移动广告量起来了!2013年绩效营销将成主流 Fedora欲以MariaDB取代MySQL 将节能进行到底:Facebook为冷存储寻求廉价闪存 谷歌Q4财报净利润28.86亿美元 超分析师预期 社交媒体的力量:Wood Camera登上iOS付费榜首之谜 屏蔽GitHub是互联网时代的“闭关锁国”吗? 巧妙利用空白设计案例分享(多图) 用友发布2013/新三年业务策略 力推UAP/CSP云平台 AWS集群计算新增内存分析EC2实例 手游:鼓足力气,掰弯传统3D游戏大作 LBA兴起:未来移动广告将基于地理位置 苹果发布2013财年Q1财报:iPhone销量及营收低于预期 SoS!俺用fireworks做了一套菜单,但是应用于框架结构中时,只显示菜单所在框架的部分菜单。也就是说菜单显示不完整,如何能够让菜单跨越 刚装了REDHAT 7.2,不知道网络怎么设置 报表打印,望各位指点..... 是不是我这里设错了? 菜鸟有问题,Win2k的定时关机程序 关于天数累加的问题 webbrowser控件问题? 421连续进纸标准,打印问题,难啊,难 有个小问题难住偶了! 请教 bdf 文件的格式 在JPrint中如何设置页面的打印范围(不使用打印机的默认打印范围),找不到例子,那位能够给个实例。。。 开发jsp需要什么环境和安装软件,目前版本为多少? 在PASCAL语言中的"集合"概念,如何转化成C语言表示 怎么回事。formshow 不能写太多sql语句么〉?,怎么不显示?大家快帮看看,急死了 自动累加的问题?(100)我只能给这么多了 哪里可以下载powerbuilder7.0 网页自动累加的问题(100) help 求肋!! 有关SUN WORKSTATION OPENBOOT的问题 请问一下vb6和.NET 请问,如何用flash 做一个网页“访问量统计”计数器? 请问在win98繁体下开发的pb源程序,在简体win98下怎样转过来?急,请帮忙! 手提电脑,没有软驱,现有一外置USB软驱,但是找不到光盘驱动, 谁有用vb开发组件的详细文档资料或教程 关闭窗口的问题!! 欢迎有志向的VB程序员加入到我的团队!!! 大家做Web Service的时候,是使用SqlDataAdapter这类控件 ,还是自己写SQL语句访问,还是自己写数据访问中间件(e.g:dll),那个在生产环境 webbrowser问题 hello 请问我的servlet程序应该放在哪里?我使用tomcat 欢迎有志向的VB程序员加入到我的团队!!! 有没有当网管的兄弟啊,交流一下 在IE设置为缺省的情况下,怎么用ActiveX? 急!急!100分问题求解(不够可加)输入中文到oracle数据库乱码的问题 请教一个小问题:通常自己定义的ID在那里定义好?也放在Resource.h里面吗? pascal求问 请问有谁知道哪里有水晶报表的中文教材? 这个问题我很头疼,大家能否帮帮忙? pascal 哪位大虾告诉我哪里可以下载bc3.1的编译器 怎么样在mts object代码中使用计时器?类似TTimer.onTime哪样 请问如何在对话框中,设定单选的默认值? 在PASCAL语言中的"集合"概念,如何转化成C语言表示 探讨数据库设计的最实际的原则!高手新手都请进!! ActiveSkin 的问题,知道的人来捡分啊!:) VB可以写COM? 高分求教:怎样用DX Show将获得压缩卡的压缩流? 如何用VB来做聊天室刷屏软件 请高手指点图片显示问题!!! 在access数据库中用insert插入记录时如何处理“自动增长”字段? 这个问题我很头疼,大家能否帮帮忙? 哺乳动物有多少种? 连接圆上任意两点的线段中,最长的是直径对还是错原因 现在陆地上最大的动物是什么? 进化世界哺乳动物怎么弄? 1张A4纸是多大面积 饲养场养了80只羊,其中山羊是绵羊的4倍,山羊和绵羊各有多少只 为什么自行车在行驶过程中受到的是静摩擦力?车轮子明明在动啊? 两端都在圆上的线段,直径最长是对是错两端都在圆上的线段,直径最长是对是急用 农村养山羊还是养绵羊好农村养绵羊和山羊哪个赚钱?哪个好养?网上都说山羊赚钱,好养,但有养的邻居说山羊跑起来追不上?他们晚上爱叫吗?是秋后才能买羊吗 某农场有绵羊490只,山羊只数是绵羊的7分之4.山羊有多少只?(写出数量关系式,再用方程计算) 一包A4纸共100张,售价18元,照这样计算,每张A4纸合多少元钱?还有:如果1千克小麦可以磨面粉0.85千克,那么100千克、1000千克小麦可以磨面粉多少千克? 山羊和绵羊比哪个好养 某农场有绵羊490只,山羊只数是绵羊的7分之4.山羊有多少只?(写出数量关系式,再用方程计算) 急 物理25页,汽车不在拱形桥的最高点或凹形桥的最低点时能不能用上诉方法求解.25页,汽车不在拱形桥的最高点或凹形桥的最低点时能不能用上诉方法求解.物理书第25页上的 ,汽车过桥,在桥中间 自行车后轮与地面没有相对运动,只有相对运动趋势?请不要偏题 世界上共有多少种水生哺乳动物 有一群羊,既有山羊又有绵羊,其中山羊占45%,再加入32只绵羊后,山羊就只占25%, 养山羊好还是绵羊好? 苹果的三分之二与利的五分之四正好相等,梨25千克,苹果多少千克 小尾寒羊是山羊还是绵羊?养山羊赚钱还是绵羊赚钱? 为什么当自行车启动,在链条驱动下,后轮逆时针转动,轮胎与地面接触处相对于地面有向后运动的趋势求高手详解啊!最好有图 毕业很久了,帮人做题,发现全忘啦.载人舱在将要着陆之前,由于空气阻力作用有一段匀速下落过程.若空气阻力与速度的平方成正比,比例系数为k,载人舱的质量为m,则此过程中载人舱速度应为? 怎么分析小车过拱形桥 现在山羊好养还是绵羊好养 利用频闪照相法可以测量物体间的动摩擦因数.在暗室中,有一正方体小物块在倾角为θ的固定斜面上做初速度为零的匀加速直线运动.若在释放小物块的同时打开照相机的快门利用闪光灯将它 汽车不在拱形桥的最低点和最高点的运动怎样分析?请具体的解释为什么最高点不考虑牵引力? 陆地上奔跑速度最快的动物是什么? 一张A4纸面积多少 高EQ是什么意思 各种动物的奔跑速度 买2千克苹果5千克梨比买6千克苹果5千克梨少支付12.4元,买1千克苹果多少元 动物之最:最长寿的哺乳动物? 情商太低是什么意思. 一张A4纸加一个信封大约多重?寄一封省内平信 不知道贴几元邮票 就一张A4大小的纸和信封 最长寿的哺乳动物是?如题 喜羊羊究竟是山羊还是绵羊?为什么有的外文翻译是Pleasent Goat?山羊和绵羊有什么区别? 两张明信片加一个信封有多重?准备给国外的朋友寄明信片,邮局说一张的邮资是4.5,一封20g以内的信件是6块钱,所以想一个信封装两张明信片.但是不晓得会不会超重.明信片是同学定制的,信封 1.最长寿的哺乳动物是什么?2.最聪明的哺乳动物是什么?3.跑得最快的动物是什么?4.飞得最快的动物是?5.世界上最长的昆虫是什么?6..世界上最小的鱼是什么? 属羊是山羊还是绵羊 一张照片加两张信纸加一个航空信封有多重还有一张邮票 请问哺乳动物中最长寿的动物是谁 一辆汽车通过拱桥顶端速度10m/s,车对桥压力是车重力的3/4,要使汽车通过顶点对桥面没有压力,车速至少为?怎么出来的? 信封一般什么纸 如何测量一张a4纸的体积 汽车过凹桥质量为m的汽车在凹桥上以速度v前进,桥面的圆弧半径为 r,重力加速度为g.求:汽车通过桥的最低点时对桥面的压力F.并讨论若速度增大会发生什么情况? 信封用什么纸 一张A4的纸怎样叠体积最大用来装水的 克隆羊“多利”是哪只羊的名字?是被克隆的那一只羊还是克隆出来的那只羊? 世界上有哪几种哺乳动物 谁知道在陆地上生活的哺乳动物最大的,最小的最低的与最高的各是什么?```急用```~陆地上生活的哺乳动物,那个最大```那个最小```那个最低`那个最高?`````````急用亚`````各位帮帮我``````! 山羊160只,绵羊比山羊多40只,山羊比绵羊少( )%,绵羊比山羊多( )% 山羊的只数比绵阳的7倍多12只,山羊比绵阳多120只,求山羊和绵羊各多少只 陆地哺乳动物介绍是特征 属于哺乳类的动物有哪些?10个以上! 自行车匀速前进时所受摩擦力是静摩擦力,这是为何? 直径是圆里最长的线段.对不对 哺乳类动物有哪些?急用! 世界上一共有多少种哺乳动物 一包A4纸多少钱?有几张? 一个判断题 圆上两点之间最长的线段一定是直径
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘