• 1. Jstorm 介绍封仲淹(Longda)
  • 2. 封仲淹(Longda Feng)Alibaba大纲Question and Answer.特性Jstorm概叙 & 流式计算为什么开发Jstorm现状
  • 3. 自我介绍JStorm团队 是国内最早开始使用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 一条龙服务 应用开发 平台开发 系统运维 封仲淹(Longda Feng)Alibaba
  • 4. Jstorm 现状Ali 内部 300台机器左右 每日消息量7000亿条 年底 2000台机器左右 封仲淹(Longda Feng)Alibaba
  • 5. Jstorm 是什么Jstorm 是一个分布式实时计算引擎 类似Hadoop MR 用户按照规定的编程规范实现一个任务,将任务放到Jstorm上,Jstorm就将任务7 * 24 小时调度起来 Jstorm 比Storm 更稳定,功能更强大,更快。 Storm上跑的程序可以一行代码不变运行在Jstorm上 封仲淹(Longda Feng)Alibaba
  • 6. 流式计算特点基于消息的流水线处理系统封仲淹(Longda Feng)Alibaba
  • 7. 优点1开发非常迅速, 容易上手, 只要遵守Topology,Spout, Bolt的编程规范即可开发出一个扩展性极好的应用,底层rpc,worker之间冗余,数据分流之类的操作,开发者完全不用考虑。 封仲淹(Longda Feng)Alibaba
  • 8. 优点2扩展性极好 当一级处理单元速度,直接配置一下并发数,即可线性扩展性能封仲淹(Longda Feng)Alibaba
  • 9. 优点3健壮 当worker失效或机器出现故障时, 自动分配新的worker替换失效worker 调度器Nimbus 采用主从备份,支持热切封仲淹(Longda Feng)Alibaba
  • 10. 优点4准确 采用Acker机制,保证数据不丢失。 采用事务机制,保证数据准确性封仲淹(Longda Feng)Alibaba
  • 11. 适用场景适合无状态计算 处理单元处理的数据均来自input Tuple,不含有额外依赖数据。 场景: 日志分析 管道系统 消息转化器 统计分析器封仲淹(Longda Feng)Alibaba
  • 12. 封仲淹(Longda Feng)Alibaba为什么启动Jstorm项目阿里拥有自己的实时计算引擎 类似于hadoop 中的MR 开源storm响应太慢 开源社区的速度完全跟不上Ali的需求 降低未来运维成本 提供更多技术支持,加快内部业务响应速度
  • 13. 为什么启动Jstorm项目现有Storm无法满足一些需求 现有storm调度太简单粗暴,无法定制化 Storm 任务分配不平衡 RPC OOM一直没有解决 监控太简单 对ZK 访问频繁 。。。封仲淹(Longda Feng)Alibaba
  • 14. 现状在整个集团,1000+的物理机上运行着Storm 一淘 200+ CDO 300+ 支付宝 200+ B2B 50+ 阿里妈妈 50 + 共享事业群 200+ 其他 封仲淹(Longda Feng)Alibaba
  • 15. 更稳定(1) -- nimbus HANimbus 实现HA 当一台nimbus挂了,自动热切到备份nimbus封仲淹(Longda Feng)Alibaba
  • 16. 更稳定(2) -- 解决RPC问题原生Storm RPC Zeromq 使用堆外内存,导致OS 内存不够 Netty 导致OOM JStorm 底层RPC 采用netty + disruptor 保证发送速度和接受速度是匹配的封仲淹(Longda Feng)Alibaba
  • 17. 更稳定(3)-- 数据流稳定现有Storm(0.9.0 已经fix) 添加supervisor时, 会触发任务rebalance Supervisor shutdown时, 触发任务rebalance 提交新任务时,当worker数不够时,触发其他任务做rebalance 上叙问题不会在Jstorm中发生封仲淹(Longda Feng)Alibaba
  • 18. 更稳定(4) – 任务之间影响小新上线的任务不会冲击老的任务 新调度从cpu,memory,disk,net 四个角度对任务进行分配, 已经分配好的新任务,无需去抢占老任务的cpu,memory,disk和net封仲淹(Longda Feng)Alibaba
  • 19. 更稳定(5) -- more catchSupervisor主线程 Spout/Bolt 的open/prepare 所有IO, 序列化,反序列化 封仲淹(Longda Feng)Alibaba
  • 20. 更稳定(6)减少对ZK的访问量: 去掉大量无用的watch task的心跳时间延长一倍 Task心跳检测无需全ZK扫描 封仲淹(Longda Feng)Alibaba
  • 21. 调度更强大(1)彻底解决了storm 任务分配不均衡问题 从4个维度进行任务分配: CPU Memory Disk Net封仲淹(Longda Feng)Alibaba
  • 22. 调度更强大(2)默认一个task,一个cpu slot 当task消耗更多的cpu时,可以申请更多cpu slot。 需求: 解决新上线的任务去抢占老任务的cpu。 一淘有些task内部起很多线程,单task消耗太多cpu封仲淹(Longda Feng)Alibaba
  • 23. 调度更强大(3)默认一个task,一个memory slot 当task需要更多内存时,可以申请更多内存slot 需求: 在海狗项目中,solr task 需要8G内存,而且其他任务2G 就够了封仲淹(Longda Feng)Alibaba
  • 24. 调度更强大(4)默认task,不申请disk slot 当task 磁盘IO较重时,可以申请disk slot 需求: 海狗/实时同步项目中,task有较重的本地磁盘读写操作封仲淹(Longda Feng)Alibaba
  • 25. 调度更强大(5)可以强制某个component的task 运行在不同的节点上 需求: 聚石塔,海狗项目,某些task提供web service服务,为了端口不冲突,因此必须强制这些task运行在不同节点上封仲淹(Longda Feng)Alibaba
  • 26. 调度更强大(6)可以强制topology运行在单独一个节点上 需求: 节省网络带宽 Tlog中大量小topology,为了减少网络开销,强制任务分配到一个节点上封仲淹(Longda Feng)Alibaba
  • 27. 调度更强大(7)可以自定义任务分配 提前预约任务分配到哪台机器上,哪个端口,多少个cpu slot,多少内存,是否申请磁盘 需求: 海狗项目中,部分task期望分配到某些节点上封仲淹(Longda Feng)Alibaba
  • 28. 调度更加强大(8)可以预约上一次成功运行时的任务分配 上次task分配了什么资源,这次还是使用这些资源 需求: CDO 很多任务期待重启后,仍使用老的节点,端口封仲淹(Longda Feng)Alibaba
  • 29. 资源隔离不同部门,使用不同的组名 每个组有自己的Quato 不同组的资源隔离 采用cgroups 硬隔离封仲淹(Longda Feng)Alibaba
  • 30. classloader解决应用的类和Jstorm的类发生冲突 应用的类在自己的类空间中 需求: Log4j, Logbak冲突 当应用访问Hive时,使用thrift9, 与jstorm thrift7冲突 封仲淹(Longda Feng)Alibaba
  • 31. Task 内部异步化Worker 内部全流水线模式 Spout nextTuple和ack/fail运行在不同线程 需求: EagleEye中,在nextTuple 做sleep和wait操作不会block ack/fail 动作封仲淹(Longda Feng)Alibaba
  • 32. 性能更快底层使用ZeroMq, 比storm快30% 底层使用netty时, 和storm快10%,并且稳定非常多 封仲淹(Longda Feng)Alibaba
  • 33. Jstorm with netty封仲淹(Longda Feng)Alibaba
  • 34. Storm with netty封仲淹(Longda Feng)Alibaba
  • 35. Jstorm with zeromq封仲淹(Longda Feng)Alibaba
  • 36. Storm with zeromq封仲淹(Longda Feng)Alibaba
  • 37. 为什么更快Zeromq 减少一次内存拷贝 增加反序列化线程 重写采样代码,大幅减少采样影响 优化ack代码 优化缓冲map性能 Java 比clojure更底层封仲淹(Longda Feng)Alibaba
  • 38. 更多文档https://github.com/alibaba/jstorm/wiki 旺旺群:Jstorm QQ群:228374502 来往公众账号: Aloha封仲淹(Longda Feng)Alibaba
  • 39. 诚聘英才 精通Java即可 发送私信至微博账号: @longda_feng封仲淹(Longda Feng)Alibaba
  • 40. 纪君祥(Longda Feng)Q & A