- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Storm介绍
Agenda实时应用场景实时平台架构Storm介绍
点评的实时应用场景Dashboard类:北斗、微信和云图等实时DAU:包括主APP(Android/iPhone/iPad)、团APP、周边快查、PC、M站新激活用户数:主APP实时交易额:闪惠
点评的实时应用场景搜索/推荐/安全等:用户在点评的每一步有价值的操作(包括:搜索、点击、浏览、购买、收藏等),都将实时、智能的影响搜索排序,从而显著提升用户搜索体验、搜索转化率。
业界的一些应用场景阿里JStrom:双11实时交易数据360Strom:抢票软件验证码自动识别、网盘图片缩略图生成、实时入侵检测、搜索热词推荐腾讯TDProcess分布式K/V存储引擎TDEngine和支持数据流计算的TDProcess。TDProcess是基于Storm的计算引擎,提供了通用的计算模型,如Sum、Count、PV/UV计算和TopK统计等京东Samza:整个业务主要应用订单处理,实时分析统计出待定区域中订单各个状态的量:待定位、待派工、待拣货、待发货、待配送、待妥投等。百度Dstream和IStream
Agenda实时应用场景实时平台架构Storm介绍
实时平台架构
实时数据输入用户浏览行为数据(打点日志):APP/PC/M站,APP数据由于上报问题略微延迟16秒;PC和M站实时应用日志Nginx日志MySQL数据库的变更消息(PUMA)应用Swallow消息
实时数据输出MySQLRedisHBase通过DataService提供写入Redis和HBase支持通过DataService提供对外的Pigeon访问支持目前点评最大的Pigeon服务应用,日调用10亿次+,占点评全站Pigeon调用的20%+
Agenda实时应用场景实时平台架构Storm介绍
Storm是什么?ApacheStorm()是由Twitter开源的分布式实时计算系统。Storm可以非常容易的可靠地处理无限的数据流。对比Hadoop的批处理,Storm是个实时的、分布式以及具备高容错的计算系统。Storm可以使用何编程语言来进行开发
Storm基本概念?StormHadoop角色NimbusJobTrackerSupervisorTaskTrackerWorkerChild应用名称TopologyJob编程接口Spout/BoltMapper/ReducerStorm的集群表面上看和Hadoop的集群非常像。但是在Hadoop上面你运行的是MapReduce的Job,而在Storm上面你运行的是Topology。Storm和Hadoop一个非常关键的区别是Hadoop的MapReduceJob最终会结束,而Storm的Topology会一直运行(除非你显式地杀掉它)。
Storm基本概念Topology一个实时计算应用程序逻辑被封装在Topology对象中,类似Hadoop中的job,Topology会一直运行直到你显式杀死它。Nimbus负责资源分配和任务调度,类似Hadoop中的JobTracker。Supervisor负责接受Nimbus分配的任务,启动和停止自己管理的Worker进程Worker运行具体处理组件逻辑的进程。ExecutorExecutor为Worker进程中的具体的物理线程,同一个Spout/Bolt的Task可能会共享一个物理线程Task每一个Spout/Bolt具体要干的活,各个节点之间进行Grouping的单位。Tuple?消息传递的基本单元。Stream源源不断传递的Tuple就组成了Stream。
Storm体系架构Nimbus和Supervisor之间的通讯是依靠ZooKeeper来完成。并且Nimbus进程和Supervisor都是快速失败(fail-fast)和无状态的。可以用kill-9来杀死Nimbus和Supervisor进程,然后再重启它们,它们可以继续工作
Storm基本概念-SpoutSpout:在Topology中产生源数据流的组件。通常Spout获取从Kafka、MQ等的数据,然后调用nextTuple函数,发射数据出去供Bolt消费。
Storm基本概念-BoltBolt:在Topology中接受Spout的数据然后执行处理的组件。Bolt在接收到消息后会调用execute函数,用户可以在其中执行自己想要的操作。
Storm基本概念-GroupingGrouping即消息的partition方法,包括:shuffle、fields、all、global、none、direct和localOrShuffle等
Storm基本概念-GroupingShufflegroupingTask中的数据随机分配,可以保证每个同
文档评论(0)