转 DataTorrent 1.0每秒处理超过10亿个实时事件
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更快:
PH:DataTorrent侧重于使企业能够通过流式处理实时采取行动,而Spark希望使Spark引擎适用于处理连续事件流,这就在架构上产生了两个重要的区别。性能和有状态的容错能力是两个重点关注的方面。
- 性能——作为一个本地Hadoop 2.0产品,DataTorrent RTS从头开始设计和构建,它关注性能和高可用性,并最终实现了以亚秒级延时逐个处理事件。DataTorrent RTS在启动时就将应用程序调度到Hadoop容器中,如果应用程序不需要更改,映射就固定不变,这样就不会引入任何调度开销。另一方面,Spark基于Hadoop 2.0之前的版本构建,它利用Spark引擎以小批量或“迷你批量”高效地运行许多“map reduce”作业。这种设计策略要求现在的Spark(通过Application Master)必须将每个最小批调度到集群上,这意味着巨大的开销,降低了系统速度。
- 有状态的容错能力——按照设计,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亿个实时事件的更多相关文章
- 看好腾讯,鄙视百度(腾讯的核心竞争力,不是超过10亿的QQ的注册用户,也不是某一项产品、技术方面优势,而是“耐心”:懂得在合适的时间推出合适的产品。”)
百度,自始至终只是一个低劣的模仿者,且一切向前看,完全违背了一个搜索引擎所应该遵循的基本原则.谁给的钱多就能搜着谁,这跟贩毒有什么区别? 腾讯也在模仿别人,但是,它是模仿然后超越.在中国互联网发展历史 ...
- 云计算之路-阿里云上:基于Xen的IO模型进一步分析“黑色0.1秒”问题
在发现云服务器读取OCS缓存的“黑色0.1秒”是发生在socket读取数据时,而且是发生在读取开始的字节,甚至在socket写数据时(比如写入缓存key)也会出现超过50ms的情况,我们的好奇心被激发 ...
- 云计算之路-阿里云上:原来“黑色0.1秒”发生在socket读取数据时
在昨天的博文(云计算之路-阿里云上:读取缓存时的“黑色0.1秒”)中我们犯了一个很低级的错误——把13ms算成了130ms(感谢陈硕发现这个错误!),从而对问题的原因作出了错误的推断,望大家谅解! 从 ...
- PL/SQL 0.几秒出结果,SQL效率一定高吗?
今天开发问我一个问题,PL/SQL很快出结果了,为什么应用还是很慢 create index F_AGT_SAVB_ACCTINFO_H_idx4 on F_AGT_SAVB_ACCTINFO_H ( ...
- 天了噜,我国4G用户超过2亿了!
近期,看到工信部一组统计数据,小编整个人都不好了,数据显示,2015年5月我国4G用户净增2281.6万,总数超过2亿户. 没错,卡是换成了4G卡,还是那句话,然并卵,用的还是3G手机.开的还是2G网 ...
- oralce 超过1亿条数据的数据库表清理实践
2018-08-18 16:58 无腿鸟 阅读(331) 评论(0) 编辑 收藏 问题:当一个表的数据量超过一亿条,要删除其中的5000w条,如何处理. 如果直接使用delete语句,会涉及到到大量的 ...
- 屏蔽每分钟SSH尝试登录超过10次的IP
屏蔽每分钟SSH尝试登录超过10次的IP 方法1:通过lastb获取登录状态: #!/bin/bash DATE=$(date +"%a %b %e %H:%M") #星期月天时分 ...
- C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)
题目内容: 利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号.姓名和三门课(高数.物理和英语 )的成绩和平均分(整型). 编写程序,从键盘输入学生的人数,然后依次输入每个学生的学号. ...
- 每秒高达1.6亿次操作的并发键值存储库 FASTER 诞生
FASTER 在过去十年中,云中的数据密集型应用程序和服务有了巨大的增长.数据在各种边设施(例如,设备,浏览器和服务器)上创建,并由云应用程序处理用来获得数据价值或做出决策.应用程序和服务可以处理收集 ...
随机推荐
- CF1082G Petya and Graph
题意 定义图权 = 图中边权总和 - 图中点权总和(空图的图权=0),求 n 个点 m 条边的无向图最大权子图. 把边看成点,这个点与两个原图中的点连边.直接最小割求最大闭合子图即可.
- Fair CodeForces - 987D (bfs)
链接 大意:给定无向图边权均为1, 每个节点有一种货物, 对于每个节点, 求出拿到$s$种不同货物的最短距离 (每种货物独立计算,并且不用返回) 因为$s$较小, 直接枚举每种货物即可 所以问题就转化 ...
- 微信小程序之更新上一页数据(十二)
小程序开发过程中经常有这种需求,需要把当前页面数据传递给上一个页面,但是wx.navigateBack()无法传递数据. 一般的办法是把当前页面数据放入本地缓存,上一个页面再从缓存中取出. 除此之外还 ...
- jquery添加类
一.addClass() 方法向被选元素添加一个或多个类. 1.对P元素添加一个intro类.<!DOCTYPE html><html><head lang=" ...
- M爷的线段树
M爷的线段树 - BUCTOJ 3305 一个长度为n的数列A.修改m次,每次给区间[L,R]中的每一个数加X.查询k次,每次查询第i个元素的值并输出.1<=n<=1e5 ,1<=m ...
- Dos命令下目录操作
Dos命令下目录操作 1.cd 操作 显示当前目录名或改变当前目录 cd [盘符][路径] 进入指定盘符下的目录 cd [..] ...
- 重启oracle数据库的操作方法
在实际的应用中,有时候工作数据库需要重新启动.本文介绍了一个特别实用的操作步骤,希望对大家有所帮助. 1. 停应用层的各种程序 2. 停Oralce的监听进程 $ lsnrctl stop 3. 在独 ...
- sublime text3 设置快速生成代码
依次打开 Tools > Developer(开发者选项) > new Snippet(新的代码块).可以看到注释的说明: <snippet> <content>& ...
- 前端必学库之bootstrap
想要成为一个全栈程序员,其实有很多技术线路.很多人说有了nodejs后,只学JAVASCRIPT就可以了.其实,会NODEJS后端开发,严格来说算是高级前端.就站长个人理解,后端的主流还是4P:jsp ...
- 1011 A+B 和 C
给定区间 [-2^31, 2^31] 内的 3 个整数 A.B 和 C,请判断 A+B 是否大于 C. 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数.随后给出 T 组测试用 ...