淘宝大数据产品解析之基于storm引擎的虫洞系统

虫洞系统是吸星大法项目衍生出来实时计算的基础平台。

解析:虫洞系统是基于storm为基础的项目,牵扯到了淘宝自己的应用组件跟storm的整合,应用于实时计算领域

这是独立于云梯的另一个大的平台系统,并且方向不同,在这做个简单的应用场景分析

虫洞:实时计算,比如当天的流量分析、活动分析、个性化推荐对实时性要求比较高的需求

云梯:离线分析,主要应用于离线数据统计,数据挖掘,并且很多分析数据是要同步到量子恒道架构,为量子恒道提供离线基础数据

它以storm实时流处理引擎为基础,提供了计算力、数据源整合、数据交换、监控几大功能模块。任务的权限控制正在筹划中。
这几个功能模块是此实时计算平台提供稳定运行的基础,虫洞系统承载的业务包括:月光宝盒、一淘首页个性化(实时用户个性化指标的计算)、吸星大法实时日志接入(数据源整合)。
  • 计算能力
    基于storm的流式处理任务可以直接运行在虫洞系统上,避免了搭建、维护集群的成本,极大的节约了业务的成本、提高了开发的效率和系统的稳定性
解析:tiwtter的东东,在测试稳定性方面还是非常有保证的,开发基本只需要关心业务开发,storm的技术架构天然的支持各种类型的实时计算
  • 数据源整合
    目前虫洞系统整合了多个实时数据源,这些数据源组合起来,可以实现完整的业务分析。 吸星大法实时数据接入将数据源接入、归一化,为使用方提供格式一致的数据,简化了日志使用的成本和难度。目前接入的主要数据源有:
            – 全网Aplus日志
            – 订单
            – 支付宝交易
            – 站外B2C
            – 实时购物车、收藏夹等
解析:简单说下吸星大法,很明显吸星大法做了部分的ETL工作,主要是数据格式统一、数据整理工作,这部分淘宝还没公布具体的实现技术,但是根据后面公布的技术文档
可以看出基本上是基于TT3+storm完成,tt3做为storm的原始源,storm对数据进行整流分析

  •   数据交换
    基础日志经过归一化之后,根据业务场景需求,可以有两种方式来使用:
                     1) Hbase, 如果需要回溯历史数据,可以使用Hbase接口来访问
                     2)虫洞(动态端口), 高效、便捷的数据交换形式,支持日志的横向和纵向任意裁剪,支持客户端的动态负载均衡;高容错性等很多特性
             上述两种方式都提供了客户端sdk供使用
解析:hbase在这可以基本认为是用于storm的数据存储,各种数据的累积分析,数据获取都是通过hbase完成,因为hbase对随即读写性能还是有天然的支持
            另一个是直接对外业务需求提供动态端口了。

  • 监控系统
    监控系统是虫洞系统稳定运行的基础。它有两个主要功能: 1) storm task级状态的汇总 2)异常状态的报警,目前支持短信、旺旺报警,storm task级监控室为storm量身定做的监控系统,使得集群中不同机器间的状态统一监控,监控指标丰富、并且可自定义,是任务开发、调试、运维的利器。

解析:ok,不论任何系统监控是必不可少的,特别是存在单点问题的系统,淘宝对于storm的监控是使用自己开发的监控工具,这里就直接引用淘宝相关的文档说明作为监控系统的解析,

storm-monitor(storm监控系统),源码路径

      https://github.com/killme2008/storm-monitor

主要功能如下:

    1.监控supervisor数目是否正确,当supervisor挂掉的时候会发送警告。

    2.监控nimbus是否正常运行,monitor会尝试连接nimbus,如果连接失败就认为nimbus挂掉。

    3.监控topology是否正常运行,包括它是否正常部署,是否有运行中的任务。

     当故障发生的时候通过alarm方法警告用户,开放出去的只是简单地打日志。因为每个公司的告警接口不一样,所以你需要自己扩展,修改alarm.clj即可。我们这儿就支持旺旺告警和手机短信告警。

     基本的原理很简单,对supervisor和topology的监控是通过zookeeper来间接地监控,通过定期查看path是否存在。对nimbus的监控是每次起一个短连接连上去,连不上去即认为挂掉。

     整个项目也是用clojure写。你的机器需要安装lein和exec插件,然后将你的storm.yaml拷贝到conf目录下,编辑monitor.yaml设定监控参数如检查间隔等,最后启动start.sh脚本即可。默认日志输出在logs/monitor.log。


你可能感兴趣的:(淘宝大数据产品解析,storm,hbase,hbase,Storm,大数据,淘宝)