DataTorrent是一个实时的流式处理和分析平台,它每秒可以处理超过10亿个实时事件。

Twitter平均每秒大约6000条微博相比,最近发布的DataTorrent 1.0似乎已经超出了需求,它每秒可以处理超过10亿个实时事件。他们在一个包含37个节点的集群上进行了测试,每个节点256GB内存、12核超线程CPU。在CPU达到饱和之前,DataTorrent声称已经实现了线性扩展,而CPU达到饱和时处理速度为每秒16亿个事件。Phu Hoang是DataTorrent的联合创始人和CEO,他告诉InfoQ,在同样的硬件上,他们的解决方案在性能上比Apache Spark要高“好几个数量级”。

DataTorrent基于Hadoop 2.x构建,是一个实时的、有容错能力的数据流式处理和分析平台,它使用本地Hadoop应用程序,而这些应用程序可以与执行其它任务,如批处理,的应用程序共存。该平台的架构如下图所示:

StrAM(Streaming Application Master)是一个本地的YARN Application Master,负责管理将要在Hadoop集群上执行的逻辑DAG(Directed Acyclic Graph),包括资源分配、分区、扩展、调度、Web服务、运行时更改、统计、SLA执行、安全等等。

在架构示意图的上层,用户应用程序作为已连接的算子和/或应用程序模板存在。算子的示例有InputReceiver(模拟接收输入数据)、Average(针对指定维度的键计算数据平均值)、RedisAverageOutput(将计算好的平均值写入Redis数据存储)、SmtpAvgOperator(发送电子邮件警报)。这些算子是Malhar库的一部分,该库包含了超过400个这样的算子,并在GitHub上开源。用户可以根据需要编写其它算子。

我们问Hoang,是什么使DataTorrent比Spark更快:

PHDataTorrent侧重于使企业能够通过流式处理实时采取行动,而Spark希望使Spark引擎适用于处理连续事件流,这就在架构上产生了两个重要的区别。性能和有状态的容错能力是两个重点关注的方面。

  1. 性能——作为一个本地Hadoop 2.0产品,DataTorrent RTS从头开始设计和构建,它关注性能和高可用性,并最终实现了以亚秒级延时逐个处理事件。DataTorrent RTS在启动时就将应用程序调度到Hadoop容器中,如果应用程序不需要更改,映射就固定不变,这样就不会引入任何调度开销。另一方面,Spark基于Hadoop 2.0之前的版本构建,它利用Spark引擎以小批量或“迷你批量”高效地运行许多“map reduce”作业。这种设计策略要求现在的Spark(通过Application Master)必须将每个最小批调度到集群上,这意味着巨大的开销,降低了系统速度。
  2. 有状态的容错能力——按照设计,DataTorrent RTS能够进行复杂的、有状态的高性能计算,并具有容错能力。这是企业的一项关键需求,在不丢失任何数据、任何状态的情况下从故障中恢复,这是一项必备的能力。这里,DataTorrent RTS的设计中心是使用Java编程以及为企业开发人员/ISV解除容错能力设计的“负担”(也就是说,由DataTorrent RTS为开发人员处理)。Spark确实也提供了容错能力,但只针对无状态处理。Spark的设计中心是使用函数式语言Scala,处理连续事件流的算子是无状态的。如果企业想向Spark添加有状态的处理,他们需要将那部分代码作为应用程序的一部分进行编写,这很难,而且会影响性能。

据Hoang说,经验证,DataTorrent适用于“所有主要的Hadoop分发,既包括本地部署,也包括基于云的部署(前者如Cloudera、Hortonworks、MapR,后者如Amazon AWS和Google Cloud),这赋予了企业灵活性,使他们既可以更换Hadoop供应商,也可以无障碍地更改部署选项。”

虽然DataTorrent是一款商业应用程序,但它也带来了一个包含所有功能的免费层级,可以用于中小型应用程序。

转 DataTorrent 1.0每秒处理超过10亿个实时事件的更多相关文章

  1. 看好腾讯,鄙视百度(腾讯的核心竞争力,不是超过10亿的QQ的注册用户,也不是某一项产品、技术方面优势,而是“耐心”:懂得在合适的时间推出合适的产品。”)

    百度,自始至终只是一个低劣的模仿者,且一切向前看,完全违背了一个搜索引擎所应该遵循的基本原则.谁给的钱多就能搜着谁,这跟贩毒有什么区别? 腾讯也在模仿别人,但是,它是模仿然后超越.在中国互联网发展历史 ...

  2. 云计算之路-阿里云上:基于Xen的IO模型进一步分析“黑色0.1秒”问题

    在发现云服务器读取OCS缓存的“黑色0.1秒”是发生在socket读取数据时,而且是发生在读取开始的字节,甚至在socket写数据时(比如写入缓存key)也会出现超过50ms的情况,我们的好奇心被激发 ...

  3. 云计算之路-阿里云上:原来“黑色0.1秒”发生在socket读取数据时

    在昨天的博文(云计算之路-阿里云上:读取缓存时的“黑色0.1秒”)中我们犯了一个很低级的错误——把13ms算成了130ms(感谢陈硕发现这个错误!),从而对问题的原因作出了错误的推断,望大家谅解! 从 ...

  4. PL/SQL 0.几秒出结果,SQL效率一定高吗?

    今天开发问我一个问题,PL/SQL很快出结果了,为什么应用还是很慢 create index F_AGT_SAVB_ACCTINFO_H_idx4 on F_AGT_SAVB_ACCTINFO_H ( ...

  5. 天了噜,我国4G用户超过2亿了!

    近期,看到工信部一组统计数据,小编整个人都不好了,数据显示,2015年5月我国4G用户净增2281.6万,总数超过2亿户. 没错,卡是换成了4G卡,还是那句话,然并卵,用的还是3G手机.开的还是2G网 ...

  6. oralce 超过1亿条数据的数据库表清理实践

    2018-08-18 16:58 无腿鸟 阅读(331) 评论(0) 编辑 收藏 问题:当一个表的数据量超过一亿条,要删除其中的5000w条,如何处理. 如果直接使用delete语句,会涉及到到大量的 ...

  7. 屏蔽每分钟SSH尝试登录超过10次的IP

    屏蔽每分钟SSH尝试登录超过10次的IP 方法1:通过lastb获取登录状态: #!/bin/bash DATE=$(date +"%a %b %e %H:%M") #星期月天时分 ...

  8. C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)

    题目内容: 利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号.姓名和三门课(高数.物理和英语 )的成绩和平均分(整型). 编写程序,从键盘输入学生的人数,然后依次输入每个学生的学号. ...

  9. 每秒高达1.6亿次操作的并发键值存储库 FASTER 诞生

    FASTER 在过去十年中,云中的数据密集型应用程序和服务有了巨大的增长.数据在各种边设施(例如,设备,浏览器和服务器)上创建,并由云应用程序处理用来获得数据价值或做出决策.应用程序和服务可以处理收集 ...

随机推荐

  1. LeetCode--168--Excel表列名称

    问题描述: 给定一个正整数,返回它在 Excel 表中相对应的列名称. 例如, 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 ...

  2. LeetCode--088--合并两个有序数组

    方法1: class Solution(object): def merge(self, nums1, m, nums2, n): """ :type nums1: Li ...

  3. alias和alias_method的区别:

    1.alias 是 Ruby 的一个关键字,因此使用的时候是 alias :new name :oldname,而 alias_method 是 module 类的一个方法,因此使用的时候是 alia ...

  4. android--------ExpandableListView的使用多级列表

    多级列表ExpandableListView 扩展列表能够显示一个指示在每项显示项的当前状态(状态通常是一个扩展的组,组的孩子,或倒塌,最后一个孩子).使用setchildindicator(draw ...

  5. [洛谷P1507]NASA的食物计划 以及 对背包问题的整理

    P1507 NASA的食物计划 题面 每个物品有三个属性,"所含卡路里":价值\(v\),"体积":限制1\(m_1\),以及"质量":限制 ...

  6. A Creative Cutout CodeForces - 933D (计数)

    大意:给定$n$个圆, 圆心均在原点, 第$k$个圆半径为$\sqrt{k}$ 定义一个点的美丽值为所有包含这个点的圆的编号和 定义函数$f(n)$为只有$n$个圆时所有点的贡献,求$\sum_{k= ...

  7. 二叉树—-1(No.9HN省赛小题)

    题目: 1013: Prototypes analyze 时间限制: 1 Sec  内存限制: 128 MB提交: 6  解决: 4[提交][状态][讨论版] 题目描述 ALpha Ceiling M ...

  8. Oracle性能诊断艺术-学习笔记(索引访问方式)

    环境准备: 1.0 测试表 CREATE TABLE t ( id NUMBER, d1 DATE, n1 NUMBER, n2 NUMBER, n3 NUMBER, n4 NUMBER, n5 NU ...

  9. 浏览器对应用程序的根URL发出请求时所发生的情况(结合 DI)

    1. 浏览器向 MVC 框架发送一个请求 Home 的 URL,MVC 准备创建 HomeController 类的实例. 2. MVC 框架在创建 HomeController 类实例过程中会发现其 ...

  10. iOS UI-界面传值(三种方法)

    #import <Foundation/Foundation.h> @interface DataModel : NSObject @property (nonatomic, copy) ...