JStorm流处理框架_第1页
JStorm流处理框架_第2页
JStorm流处理框架_第3页
JStorm流处理框架_第4页
JStorm流处理框架_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CompanyLOGOJStorm 介绍介绍封仲淹封仲淹(Longda)封仲淹(封仲淹(Longda Feng)Alibaba大纲大纲Question and Answer.特性特性JStorm概概叙叙 & 流式计算流式计算JStorm vs Storm现状现状自我介绍自我介绍vJStorm团队 是国内最早开始使用storm的团队 历经storm 0.5.1/0.5.4/0.6.0/0.6.2/0.7.0/0.7.1 JStorm 0.7.1/0.9.0/0.9.1/0.9.2/0.9.3v一条龙服务 应用开发 平台开发 系统运维封仲淹(封仲淹(Longda Feng)AlibabaJ

2、Storm 现状现状vAli 内部 超过600台 日超过1万亿条封仲淹(封仲淹(Longda Feng)AlibabaJStorm 是什么是什么vJStorm 是一个分布式实时计算引擎是一个分布式实时计算引擎 类似Hadoop MR 用户按照规定的编程规范实现一个任务,将任务放到JStorm上,JStorm就将任务7 * 24 小时调度起来 JStorm 比Storm 更稳定,功能更强大,更快。 Storm上跑的程序可以一行代码不变运行在JStorm上封仲淹(封仲淹(Longda Feng)Alibaba流式计算特点流式计算特点v基于消息的流水线处理系统封仲淹(封仲淹(Longda Feng)

3、Alibaba优点优点1v开发非常迅速, 容易上手, 只要遵守Topology,Spout, Bolt的编程规范即可开发出一个扩展性极好的应用,底层rpc,worker之间冗余,数据分流之类的操作,开发者完全不用考虑。封仲淹(封仲淹(Longda Feng)Alibaba优点优点2v扩展性极好 当一级处理单元速度,直接配置一下并发数,即可线性扩展性能封仲淹(封仲淹(Longda Feng)Alibaba优点优点3v健壮 当worker失效或机器出现故障时, 自动分配新的worker替换失效worker 调度器Nimbus 采用主从备份,支持热切封仲淹(封仲淹(Longda Feng)Aliba

4、ba优点优点4v准确 采用Acker机制,保证数据不丢失。 采用事务机制,保证数据准确性封仲淹(封仲淹(Longda Feng)Alibaba适用适用场景场景v适合无状态适合无状态计算计算 处理单元处理的数据均来自input Tuple,不含有额外依赖数据。v场景: 日志分析 管道系统 消息转化器 统计分析器封仲淹(封仲淹(Longda Feng)Alibaba封仲淹(封仲淹(Longda Feng)Alibaba为什么为什么启动启动JStorm项目项目v阿里拥有自己的实时计算引擎 类似于hadoop 中的MR 开源storm响应太慢 开源社区的速度完全跟不上Ali的需求 降低未来运维成本 提

5、供更多技术支持,加快内部业务响应速度v为什么为什么启动启动JStorm项目项目v现有Storm无法满足一些需求 现有storm调度太简单粗暴,无法定制化 Storm 任务分配不平衡 RPC OOM一直没有解决 监控太简单 对ZK 访问频繁 。封仲淹(封仲淹(Longda Feng)Alibaba更稳定(更稳定(1) - nimbus HAvNimbus 实现HA 当一台nimbus挂了,自动热切到备份nimbus封仲淹(封仲淹(Longda Feng)Alibaba更稳定(更稳定(2) - 解决解决RPC问题问题v原生Storm RPC Zeromq 使用堆外内存,导致OS 内存不够 Nett

6、y 导致OOM(老版本)vJStorm 底层RPC 采用netty + 检查机制 基本保证发送速度和接受速度是匹配的封仲淹(封仲淹(Longda Feng)Alibaba更稳定(更稳定(3)- 数据流稳定数据流稳定v现有Storm(0.9.0 已经fix) 添加supervisor时, 会触发任务rebalance Supervisor shutdown时, 触发任务rebalance 提交新任务时,当worker数不够时,触发其他任务做rebalancev上叙问题不会在JStorm中发生封仲淹(封仲淹(Longda Feng)Alibaba更稳定(更稳定(4) 任务之间影响小任务之间影响小v

7、新上线的任务不会冲击老的任务 采用cgroups对资源进行硬隔离,保证程序之间CPU不发生抢占封仲淹(封仲淹(Longda Feng)Alibaba解决解决Disruptor急剧消耗急剧消耗CPU问题问题v当原生Disruptor队列慢时, 生产方会不断轮询检查Disruptor队列是否有空的slot, 极大消耗队列 Cpu利用率从300%降到10%封仲淹(封仲淹(Longda Feng)Alibaba更稳定(更稳定(5)v优化GC, 减少因GC 导致误认worker死掉vStorm经常杀死worker不彻底,导致后续无法启动workerv同一台机器上只启动一个supervisor/nimbu

8、s,避免运维误操作导致丢失大量任务v减少netty不断重连,占用太多的临时端口v。封仲淹(封仲淹(Longda Feng)Alibaba稳定性(稳定性(6) - 支持用户级报警支持用户级报警 v和alimonitor结合 支持用户自定义监控和报警 (0.9.6)v各种维度采样 单worker内部支持70多个维度的采样,全方位展示各种数据,帮助快速查找错误封仲淹(封仲淹(Longda Feng)Alibaba更稳定(更稳定(7) - more catchvSupervisor主线程vSpout/Bolt 的open/preparev所有IO, 序列化,反序列化封仲淹(封仲淹(Longda Fen

9、g)Alibaba更稳定(更稳定(8)v减少对ZK的访问量: 去掉大量无用的watch task的心跳时间延长一倍 Task心跳检测无需全ZK扫描封仲淹(封仲淹(Longda Feng)Alibaba调度更强大(调度更强大(1)v彻底解决了storm 任务分配不均衡问题v从4个维度进行任务分配: CPU Memory Disk Net封仲淹(封仲淹(Longda Feng)Alibaba调度更强大(调度更强大(2)v默认一个task,一个cpu slotv当task消耗更多的cpu时,可以申请更多cpu slot。v申请的cpu slot多,就获取更多的cpu资源v需求: 解决新上线的任务去抢

10、占老任务的cpu。 一淘有些task内部起很多线程,单task消耗太多cpu封仲淹(封仲淹(Longda Feng)Alibaba调度更强大(调度更强大(3)v默认一个task,一个memory slotv当task需要更多内存时,可以申请更多内存slotv需求: 在海狗项目中,solr task 需要8G内存,而且其他任务2G 就够了封仲淹(封仲淹(Longda Feng)Alibaba调度更强大(调度更强大(4)v在资源平衡算法的前提下 尽量保证上下游关系的task在同一个worker 尽量走内部通道,提高性能封仲淹(封仲淹(Longda Feng)Alibaba调度更强大(调度更强大(5

11、)v可以强制某个component的task 运行在不同的节点上v需求: 聚石塔,海狗项目,某些task提供web service服务,为了端口不冲突,因此必须强制这些task运行在不同节点上封仲淹(封仲淹(Longda Feng)Alibaba调度更强大(调度更强大(6)v可以强制topology运行在单独一个节点上v需求: 节省网络带宽 Tlog中大量小topology,为了减少网络开销,强制任务分配到一个节点上封仲淹(封仲淹(Longda Feng)Alibaba调度更强大(调度更强大(7)v可以自定义任务分配 提前预约任务分配到哪台机器上,哪个端口,多少个cpu slot,多少内存,是

12、否申请磁盘v需求: 海狗项目中,部分task期望分配到某些节点上封仲淹(封仲淹(Longda Feng)Alibaba调度更加强大(调度更加强大(8)v可以预约上一次成功运行时的任务分配 上次task分配了什么资源,这次还是使用这些资源v需求: CDO 很多任务期待重启后,仍使用老的节点,端口封仲淹(封仲淹(Longda Feng)Alibaba插件化插件化v可以运行在飞天上v可以运行在Hadoop 2.0(yarn)上v可以运行在公司弹性计算平台上封仲淹(封仲淹(Longda Feng)Alibaba资源隔离资源隔离v不同部门,使用不同的组名 每个组有自己的Quato(0.9.5 以下版本)

13、 不同组的资源隔离 采用cgroups 硬隔离封仲淹(封仲淹(Longda Feng)Alibabaclassloaderv解决应用的类和JStorm的类发生冲突 应用的类在自己的类空间中v需求: Log4j, Logbak冲突 当应用访问Hive时,使用thrift9, 与JStorm thrift7冲突 如果使用hsf,肯定会发生类冲突封仲淹(封仲淹(Longda Feng)Alibaba更方便的更方便的UIv人性化的LogView, 看日志更方便v更简洁直观的UI 解决了storm 统计小粒度误差问题 展示更关键的QPS封仲淹(封仲淹(Longda Feng)AlibabaTask 内部

14、异步化内部异步化vWorker 内部全流水线模式vSpout nextTuple和ack/fail运行在不同线程v需求: EagleEye中,在nextTuple 做sleep和wait操作不会block ack/fail 动作封仲淹(封仲淹(Longda Feng)AlibabaLibjar可以无需上传可以无需上传v支持命令读取配置文件,无需编码读取配置v依赖包可以不打入应用jar, 减少大量上传下载的时间v支持应用指定worker.classpath封仲淹(封仲淹(Longda Feng)Alibaba强大的监控强大的监控vWeb ui 上展示更多的监控 Task 级别,每一个模块消耗时间

15、,队列长度 Worker级别, 每一个模块消耗时间,队列长度, cpu/mem使用,网络时延 用户自定义监控数据v更多监控 和Alimonitor无缝结合,让用户自定义报警封仲淹(封仲淹(Longda Feng)Alibaba性能对比性能对比 快快20%以上以上v5台物理机v18spout/18bolt/18acker封仲淹(封仲淹(Longda Feng)Alibaba92805981081881590659656819139561020162436806830500559590054741803379800020000004000000600000080000001000000012000

16、0000102030405060polltuples/10sworkersThroughput vs workers jstormstormJstorm 性能性能 发送发送41W QPS 封仲淹(封仲淹(Longda Feng)AlibabaStorm 性能性能 发送发送20W QPS封仲淹(封仲淹(Longda Feng)Alibaba为什么更快为什么更快vZeromq 减少一次内存拷贝v增加反序列化线程v重写采样代码,大幅减少采样影响v优化ack代码v优化缓冲map性能v对GC做了特别优化 vJava 比clojure更底层封仲淹(封仲淹(Longda Feng)Alibaba其他优化其他优化v 超过100多项优化 https:/ 自动清理残留的workerv 任务分配算法单线程执行,避免同一slot被分配不通workerv 被reassign的w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论