知识点
相关文章
更多最近更新
更多荐 顶 Storm 和JStorm
2019-03-02 23:57|来源: 网路
关于流处理框架,在先前的文章汇总已经介绍过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运行在不同线程
具体如何实现,请参考本ID的的博文系列 【jstorm-源码解析】
转自:http://my.oschina.net/u/1791874/blog/308401
相关问答
更多-
#渭南师范学院#在渭师院学的教育学,出来想去教育培训机构,大家有什么好的能不能推[2023-06-28]
生理学和心理学了解运用如何?去什么地方不重要,重要的是能够运用到您的专业,来奠定你的职业方向!从事教学工作还是教务管理工作。 -
贵阳室内设计培训哪里设计的最好,[2022-04-06]
你去贵阳艺龙居室内设计学校啊,哪里就包就业,而且在哪学过的学员都很厉害,在装修行列中都很出名,还有小班教学,白天工作,晚上也可以来学,这是我的回答,希望能帮助你。 -
有storm相关的视频可以下载的吗?[2022-03-14]
bg4.png storm的,这方面不多,有资料可以参考 Storm入门指南 基于Storm进行实时网络攻击检测及数据挖掘文档下载 hadoop、storm、数据挖掘等文档分享 storm实时流计算应用开发框架-天罡从需求到技术方案介绍 hadoop、hive、storm文档、电子书籍分享 storm编程入门:基本概念 hadoop、storm、hbase面试题、工作日常问答 Storm相关20文档与相关包 Storm入门教程汇总 -
charge up a storm的意思[2022-05-09]
charge up原意充电、提价,此句与a storm意思是索取很多,即大量借款 -
请问dance up a storm具体怎么翻译?[2022-06-05]
Hi: 下列还有三个短语相同意思: cook up a storm烹饪上露一手 dance up a storm舞姿翩翩 talk up a storm 侃侃而谈 [MAINLY US INFORMAL:主要用于美国,非正式用语] to do something with a lot of energy and often skill:[以非凡的能力和技能做某事] Rob was in the kitchen cooking up a storm. Rob在厨房里大显身手. (from Cambridge ... -
when the rain,the storm all is up怎么翻译[2022-01-20]
当下雨的时候,风暴都到了 -
Storm为什么依赖zookeeper[2022-03-28]
bg4.png 如果对zookeeper系统的认识一下,可能会加深理解,下面可以参考:zookeeper适用场景:zookeeper解决了哪些问题什么是ZooKeeper,ZooKeeper 能干什么?ZooKeeper的作用zookeeper原理zookeeper适用场景:如何竞选Master及代码实现zookeeper适用场景:配置文件同步分布式网站架构:zookeeper技术浅析zookeeper适用场景:分布式锁实现 -
Storm是什么文件[2023-06-19]
Storm译为汉语即‘暴风雨’、“暴风雪”,是暴风影音软件的英文名,是一种媒体播放器。 Storm还是一个分布式的、容错的实时计算系统,由BackType开发,广泛用于进行实时日志处理,实时统计、实时风控、实时推荐等场景中,目前最新版本是Storm 0.8.0。 Storm还是外文歌曲的名字,具体可在百度音乐中搜索。