分享

来自阿里的流处理框架:JStorm比Storm更稳定、性能更好

nettman 发表于 2014-9-17 00:35:25 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 11 50965
本帖最后由 nettman 于 2014-9-17 00:37 编辑
问题导读:
1.Storm无法满足那些需求?
2.JStorm为什么比Storm更稳定、性能更好?
3.JStorm为性能提升的原因是什么?




关于流处理框架,在先前的文章汇总已经介绍过Strom,今天学习的是来自阿里的的流处理框架JStorm。简单的概述Storm就是:JStorm 比Storm更稳定,更强大,更快,Storm上跑的程序,一行代码不变可以运行在JStorm上。直白的将JStorm是阿里巴巴的团队基于Storm的二次开发产物,相当于他们的Tengine是基于Ngix开发的一样。以下为阿里巴巴团队放弃直接使用Storm选择自行开发JStorm的原因:
阿里拥有自己的实时计算引擎
  • 类似于hadoop 中的MR
  • 开源storm响应太慢
  • 开源社区的速度完全跟不上Ali的需求
  • 降低未来运维成本
  • 提供更多技术支持,加快内部业务响应速度
现有Storm无法满足一些需求
  • 现有storm调度太简单粗暴,无法定制化
  • Storm 任务分配不平衡
  • RPC OOM一直没有解决
  • 监控太简单
  • 对ZK 访问频繁
JStorm相比Storm更稳定
  • Nimbus 实现HA:当一台nimbus挂了,自动热切到备份nimbus
  • 原生Storm RPC:Zeromq 使用堆外内存,导致OS 内存不够,Netty 导致OOM;JStorm底层RPC 采用netty + disruptor保证发送速度和接受速度是匹配的
  • 新上线的任务不会冲击老的任务:新调度从cpu,memory,disk,net 四个角度对任务进行分配,已经分配好的新任务,无需去抢占老任务的cpu,memory,disk和net
  • Supervisor主线
  • Spout/Bolt 的open/prepar
  • 所有IO, 序列化,反序列化
  • 减少对ZK的访问量:去掉大量无用的watch;task的心跳时间延长一倍;Task心跳检测无需全ZK扫描。
JStorm相比Storm调度更强大
  • 彻底解决了storm 任务分配不均衡问题
  • 从4个维度进行任务分配:CPU、Memory、Disk、Net
  • 默认一个task,一个cpu slot。当task消耗更多的cpu时,可以申请更多cpu slot
  • 默认一个task,一个memory slot。当task需要更多内存时,可以申请更多内存slot
  • 默认task,不申请disk slot。当task 磁盘IO较重时,可以申请disk slot
  • 可以强制某个component的task 运行在不同的节点上
  • 可以强制topology运行在单独一个节点上
  • 可以自定义任务分配,提前预约任务分配到哪台机器上,哪个端口,多少个cpu slot,多少内存,是否申请磁盘
  • 可以预约上一次成功运行时的任务分配,上次task分配了什么资源,这次还是使用这些资源
JStorm相比Storm性能更好
JStorm 0.9.0 性能非常的好,使用netty时单worker 发送最大速度为11万QPS,使用zeromq时,最大速度为12万QPS。
  • JStorm 0.9.0 在使用Netty的情况下,比Storm 0.9.0 使用netty情况下,快10%, 并且JStorm netty是稳定的而Storm 的Netty是不稳定的
  • 在使用ZeroMQ的情况下, JStorm 0.9.0 比Storm 0.9.0 快30%
性能提升的原因:
  • Zeromq 减少一次内存拷贝
  • 增加反序列化线程
  • 重写采样代码,大幅减少采样影响
  • 优化ack代码
  • 优化缓冲map性能
  • Java 比clojure更底层
JStorm的其他优化点
  • 资源隔离。不同部门,使用不同的组名,每个组有自己的Quato;不同组的资源隔离;采用cgroups 硬隔离
  • Classloader。解决应用的类和Jstorm的类发生冲突,应用的类在自己的类空间中
  • Task 内部异步化。Worker 内部全流水线模式,Spout nextTuple和ack/fail运行在不同线程

加微信w3aboutyun,可拉入技术爱好者群

已有(11)人评论

跳转到指定楼层
ascentzhen 发表于 2014-9-17 09:40:17
好资料啊,谢谢lz分享
回复

使用道具 举报

anyhuayong 发表于 2014-9-17 15:30:15
阿里牛呀,谢谢
回复

使用道具 举报

iamlipeng 发表于 2014-9-18 14:44:26
除了阿里,别的互联网公司也开始使用jstorm了。
回复

使用道具 举报

quenlang 发表于 2014-10-10 17:44:12
现在都在炒storm和spark,好像阿里的东西用的还比较少
回复

使用道具 举报

songyl525 发表于 2014-12-31 19:53:38
好资料,要学习
回复

使用道具 举报

zyw8136 发表于 2015-1-5 11:06:31
好好学习,天天向上!
回复

使用道具 举报

mvpzhou 发表于 2015-1-6 23:56:21

好好学习,天天向上!
回复

使用道具 举报

zyw8136 发表于 2015-1-12 16:37:37
这个东西比较
回复

使用道具 举报

ainubis 发表于 2015-3-28 23:07:07
谢谢分享~\(≧▽≦)/~啦啦啦
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条