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

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下载页。

测试Android软件性能主要方法 自定义Android标题栏TitleBar布局 获取Android屏幕方向及键盘状态 Android平台XML解析库功能不完整 GestureDetector手势识别类 - 入门篇 不会Java或C,Android123告诉你还有选择 Splash Screen开场屏在Android中的实现 Android游戏开发性能改进要点 Android的Activity你知多少呢? JSONObject在Android上的应用 Android高性能文件类MemoryFile 判断Android文件名是否安全技巧 让你的Android程序兼容多种分辨率 Android Button按钮控件美化方法 Android堆内存也可自己定义大小 TextUtils类-Android字符串处理类 InputSream输入流转String字符串,Android开发工具类 Android中的正则表达式Regex使用 优化Dalvik虚拟机的堆内存分配 Android标题栏进度指示器使用方法 Thread和Looper以及Handler和Message详解 Android开发必读 layout资源包含,android开发必读 Android本地化开发技巧 Android开发网将推出每天一类专题 ExifInterface使用,Android 2.0新增类 GraphableButton类实现Android UI开发 Android控件开发之ToggleButton原理 Android标题栏TitleBar全攻略 AsyncTask实例代码演示Android异步任务 重绘TextView类演示Android的Handler Android的SoundPool类使用与利弊 怎样读取数码相机的照片,并将它存入sqlserver数据库中 JSP里连接DB2的疑问? 为什么dbgrid的网格颜色属性的更改不是每次都可以。 请教名位大虾!~怎么安装.NET?今天刚买的,却不会装,七张光盘的!~ rose 的问题, SELECT 语句中的WITH TIES作用是什么? 西南交大 农历这么转换成公历?UP有分!急用!问题解决马上给分!不够再加。 关于数组的问题!在线等,谢谢了 不从新发送信息,则无法刷新页面!!! 一个旧声卡怎么才能知道它的型号? 我使出浑身解数,还是装不上sql server2000 ,怎么办? 各位师兄,想问一本书(王国荣的)的书具体内容?! 请问该如何处理?? 请教:关于excel2000链接对象.谢谢() CBC6使用手记--鸡肋 在线等待 如何从一个数据表的某字节中只提出来N个字符!!!!(帮我看一下,谢谢) dbgrid 与 adoquery 的记录如何...? 难道没有人懂水晶报表!??? 季老大帮我搞定!!!!!!!!! 请问该如何处理??在线等 谢谢了!!! 谢谢提供需求分析、概要设计、详细设计、等步骤的样本!!! 用HWiNFO32 V1.22检测机器硬件信息,当检测到“IDE/SCSI Drive(s)”时,硬盘灯常亮并死机,请问是什么原因?是硬件的问题吗? HELP ME AGAIN! 我新买的机器,看看是不是被骗了 谢谢提供需求分析、概要设计、详细设计、等步骤的样本!!! 两个笑话,大家也来帖帖 一个算法,如何快速的从一个大字符串数组里面删除一个小的字符串数组的内容 紧急求救 http://www.driverdevelop.com 好像关了!!! 请问:构件,com,activeX,bean是不是相同的概念?com+和EJB呢? 哪有c++primer第三版? 为何sun one studio在安装模拟器中安装不了6688i 的模拟器?? ComboBox 有问题 我的毕设题目行不行啊? 如何在jsp网页中显示树形目录结构 请问一个计算机本科生出去工作要具备什么条件? 160015.txt怎么取得前面的文件名(160015) 求教高手,java和.net 比,优势在哪里?? 关于wh_callwndproc kook 截获wm-activate 消息 怎样判断两个ACCESS库的表名相同?用代码实现 TRegIniFile有bug? COMEING! D ArcInfo 怎么装不上! 寻求J2EE 入门好书。有电子书最好了,谢谢!!! 动画测试的时候场景总是看不全?? 大侠请进 提问一个关于组合框的简单问题…… 请问,我因该调用VC中的什么函数同步两台机器的系统时钟? His mother usually walks to the park. 改为同义句 昆虫记怎么写内容概括要求我们写昆虫记的内容概括..至少600字.求教如何写内容概括... 蜗牛是什么变的 His mother usually walks to the park改为同义句 His mother usually____to the park____改为同义句fast 不则名词复数是什么意思 蜗牛长大变什么 my father usually walks to the park.用go to 改写 现代猿人为什么没有进化成人 where is the glass of milk牛奶在桌子上! Jenny eats some bread and beef ()breakfast.(填介词) 现在的猿人为什么不能继续进化成人了?现在的猿为什么不能继续进化成人了?人类不是从它们进化来的吗? it is good to have a glass of milk的意思、、? Dave's birthday party is December 6th同义句 从猿人到人进化了多少次?每进化一次,猿人取的是什么名字? 下雨了,蚂蚁搬家会搬些什么(要三个回答) __________________?yes,his birthday is in december. 建党90周年经验启示 建党90周年的启示 his birthday is December ___(twelve).填空 芭比公主属于哪个国家 连词成句:notebook is I the like nice it What is your new friend like?与What does your new friend like?有什么区别? 关于文明礼仪的历史故事,快解答 I like my tea with a d_____ of milk.It will taste nice. It takes Danny about 20 minutes to get to school.英译英要用英文解释句子 关于文明礼仪的历史故事除了孔融让梨程门立雪还有什么 瓶子的英文 It's u___ to cry for the spoiled milk.如题 英语翻译翻译成英文小作文Lily和Lucy是很好的朋友,以前在一起上学,但是考上了不同的大学,在不同的省份,现在恰好是寒假,两人不约而同在街上相遇了,互相寒暄。 瓶子的英语是什么 What c_____ is the milk?It's w_____. 文明礼仪的历史故事 20字左右 古典诗词中以物喻雪的句子 连词成句 week was at your there festival a school last food(?)急用 翻译成英语 Lily和Lucy是孪生姐妹. 蚂蚁搬家 都搬些什么东西 搬到哪? 运用有关哲学原理,谈谈当前反腐败的重要性以及如何反腐败才能收到实效. All we have to do is to wait怎样分主谓宾吖 咏雪的“撒盐空中差可拟”与“未若柳絮因风起”两句诗,认为哪一句喻雪比较好?为什么? Danny wants to be a ( ) .he likes driving .填空 have to do 怎么判断主谓宾?如:I have to go to school. 蚂蚁搬家到底往哪里搬?蚂蚁搬家到底往哪里搬! 急~~~~~~~~~~~~~~~~~ Danny wants to be a cook .改为一般疑问句 I have a dream to be a teacher 怎样分主谓宾吖 撒盐空中差可拟”与“未若柳絮因风起”两句诗,认为哪一句喻雪比较好?是个论文,几百左右 为什么地震时动物搬家 two pieces of advice作主语的话,应看做单数还是复数,其他的如two bottles of water呢? It is no use crying over spilt milk最好把每个字的意思写出来 1.he to wants to in Beijing go scool造句 2.Danny wants learn in Canada to Enalish all i have to do is to go to my CD shelf 帮我分析下主谓宾英语 英语 英语 it is no use crying over spilt milk. :It is u_____ to cry over spilt milk.横线上填相应单词的适当形式 ①I have something to do这里依次是 :主、谓、宾、宾补(to do)对吗?②She gave me a pen 这里依次是 :主、谓、宾、宾补(a pen)对吗? 在瓶子里 英语 关于赞颂祖国建党90周年的红诗或作文.红诗100或200字,作文400或800字.要求是原创的的啊,老师催的啊,呜呜呜呜,实在不行,各位给篇例文啊,求了啊. I ate 【some noodles】.对括号里提问 到底是鸡生蛋还是蛋生鸡呢?/疑问 敬当爱党 幸福成长 围绕建党90周年,建立特区30周年,畅谈祖国以及自己家乡,家庭面貌的变化,歌颂党青少幸福成长的过程 我要写一个建党90周年光辉历程的作业, 螳螂捕蝉黄雀在后发生在什么时期?快说,一分钟内, 日本两男子涉嫌介绍未成年少女夜总会打日本一办公室里种大麻盈利逾千万日元 朱国林:转基因是“欺骗的种子,失窃的王湘穗:建议国家成立“转基因安全国家顾秀林:坚决不同意标注出售转基因食品中国拟规定非法添加等危害食品安全行为纽约华裔男子眼红表哥家庭幸福 杀其一日官房长官称日国家安保“司令塔”或用日陆自一军官偷拍女性裙底遭查 称大爱德国农场主检查马厩 发现自家马匹驮回英媒称中国应对气候变化态度积极 民众全国雾霾监测网络以城市为重点开展监测浙商大会吹响转型集结号 青田侨商抱团浙江一男子非法拘禁妻子获刑 虐待折磨阿富汗一男子被疑制造炸弹袭击事件 遭日官房长官称首相行踪将不被列为机密情英《卫报》发布机密信息 卡梅伦欲将其日本两男子涉嫌介绍未成年少女夜总会打日自明党提议福岛核电站追加除污费应由湖南男子编造长沙机场“诈弹”虚假恐怖北京今冬预计11月7日起试供暖 保证娃娃放学去哪儿 先到社区少年宫四川路桥建设集团一分公司党委书记孙忠成都太极“大阅兵”雪阻雅西高速格力旗下全系产品岁末终极大动作奥普双12跨年钜惠:爱要放心“价家加白领回家有新招巧避春运高峰两年来省医院职业暴露共210例艾滋占银河时代汽车综合体起航内江停电信息成温立交进城右转匝道明日开通逛时代·奥特莱斯享奥莱价再7折成都市低保审批将缩短至5个工作日奥迪撞电线杆起火消防紧急救援日系轿车新轩逸正面终结德系大众“神车《变形金刚4》冲奥擎天柱没救了听孕产讲座 享安琪儿 4999 元大纪敏佳文章助阵旅游卫视春晚成温立交进城方向右转匝道明日开放太空米、生物克隆“飞进”百姓家四川路桥集团一分公司党委书记孙忠涉嫌
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘