版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、绪论知识Storm架构一个简单的Storm例子Storm在交通数据处理中的应用目录Storm及交通实时数据处理背景:大数据的产生GBTBPBEBZB数据量的增长:在2006 年,个人用户才刚刚迈进TB时代,全球一共新产生了约180EB的数据;在2011 年,这个数字达到了1.8ZB。有市场研究机构预测(2009年):到2020 年,整个世界的数据总量将会增长44 倍,达到35.2ZB(1ZB=10 亿TB)!1GB = 230字节1TB = 240字节1PB = 250字节1EB = 260字节1ZB = 270字节背景:大数据处理模式主要的处理模式可以分为流处理(stream process
2、ing)和批处理(batch processing)两种。批处理是先存储后处理(store-process),而流处理则是直接处理(straight-through process)。(有时也分为在线、离线、近线三种)batch processingstream processing背景:多种数据处理技术的出现过去的十年是数据处理变革的十年, MapReduce、 Hadoop以及一些相关的技术使得我们能处理的数据量比以前要大得多得多。但是这些数据处理技术都不是实时的系统 它们设计的目的也不是为了实时计算。然而大规模的实时数据处理已经越来越成为一种业务需求了, 而缺少一个“实时版本的hadoo
3、p”已经成为数据处理整个生态系统的一个巨大缺失。Storm填补了这个缺失。Storm出现之前,需要自己手动维护一个由消息队列(Queues)和消息处理者(Workers)所组成的实时处理网络,消息处理者从消息队列取出一个消息进行处理,更新数据库,发送消息给其它队列进行进一步处理,但是这种计算方式的局限性太大:复杂、不健壮且扩展性差。大数据实时流计算系统(一)Yahoo的S4S4是一个通用的、分布式的、可扩展的、分区容错的、可插拔的流式系统,Yahoo!开发S4系统,主要是为了解决:搜索广告的展现、处理用户的点击反馈。在流式处理领域里,Storm的直接对手是S4。不过,S4冷淡的社区、半成品的代
4、码,在实际商用方面输给Storm不止一条街。Why Storm?Storm:“Hadoop of realtime”、Distributed and fault-tolerant realtime computationStorm定义了一批实时计算的原语。如同hadoop大大简化了并行批量数据处理,storm的这些原语大大简化了并行实时数据处理。storm的一些关键特性如下:分布式系统/运维简单/高度容错/无数据丢失/支持多种编程语言Storm发展现状最新版本:0.9.1在GitHub上超过4000个项目负责人,全球共有29名代码贡献者。(12年)很多公司在使用Storm,这些公司中不乏淘宝,
5、百度,Twitter,Groupon,雅虎等重量级公司。Storm集群:物理的Storm集群主要由一个主节点(master node)和一群工作节点(worker nodes)组成,通过 Zookeeper集群进行协调。主节点通常运行一个后台程序 Nimbus,用于响应分布在集群中的节点,分配任务和监测故障。工作节点同样会运行一个后台程序 Supervisor,用于收听工作指派并基于要求运行工作进程。每个工作节点都是topology中一个子集的实现。Storm集群masterTopology:逻辑的在Storm中,应用程序实现实时处理的逻辑被封装进Storm中的topology中。一个topo
6、logy是由一组Spout组件(数据源)和Bolt组件(数据操作)通过Stream Groupings进行连接的图。Topology:逻辑的流(Stream)Stream是Storm中的一个核心概念,Storm将输入的数据看成流,它是以tuple为单位组成的一条有向无界的数据流。tupletupletupletupletupletupleTopology:逻辑的Stream Groupings:消息的分组方法。Storm提供了六种分组方法:1. 随机分组(Shuffle grouping):随机分发tuple到Bolt的任务,保证每个任务获得相等数量的tuple。tupletuplebolt3
7、bolt2bolt1ABATopology:逻辑的3. 全部分组(All grouping):tuple被复制到bolt的所有任务。这种类型需要谨慎使用。tupletuplebolt3bolt2bolt1ABABTopology:逻辑的4. 全局分组(Global grouping):全部流都分配到bolt的同一个任务。明确地说,是分配给ID最小的那个task。5. 无分组(None grouping)6. 直接分组(Direct grouping)Storm应用程序执行过程总结:名词解释Nimbus:负责资源分配和任务调度.Supervisor:负责接受nimbus分配的任务,启动和停止属于
8、自己管理的worker进程.Topology:storm中运行的一个实时应用程序.Task:worker中每一个spout/bolt的线程称为一个task.Spout:在一个topology中产生源数据流的组件.Bolt:在一个topology中接受数据然后执行处理的组件.Tuple:一次消息传递的基本单元.Stream grouping:消息的分组方法绪论知识Storm架构一个简单的Storm例子Storm在交通数据处理中的应用目录一个具体的例子:Count words在这个例子中,我们会实现一个简单的topology来统计一个文件中的每个单词出现的次数。我们可以把这个例子认为是storm中
9、的“hello world”。为了实现这个topology,我们将使用一个spout来负责读取单词,第一个bolt来标准化单词,第二个bolt来为单词计数,如下图所示:Spout:WordReaderpublic class WordReader implements IRichSpout public void open(Map conf, TopologyContext context,SpoutOutputCollector collector) try this.context = context;this.fileReader = new FileReader(conf.get(wo
10、rdsFile).toString(); catch (FileNotFoundException e) throw new RuntimeException(Error reading file +conf.get(wordFile)+);this.collector = collector;Spout:WordReader(续)public void nextTuple() if(completed)try Thread.sleep(1); catch (InterruptedException e) /Do nothingreturn;String str;BufferedReader
11、reader = new BufferedReader(fileReader);trywhile(str = reader.readLine() != null)this.collector.emit(new Values(str);catch(Exception e)throw new RuntimeException(Error reading tuple,e);finallycompleted = true;项目入口:TopologyMainpublic static void main(String args) throws InterruptedException /Topology
12、 definitionTopologyBuilder builder = new TopologyBuilder();builder.setSpout(word-reader,new WordReader();builder.setBolt(word-normalizer, new WordNormalizer().shuffleGrouping(word-reader);builder.setBolt(word-counter, new WordCounter(),2).fieldsGrouping(word-normalizer, new Fields(word);/ConfigurationConfig conf = new Config();conf.put(wordsFile, args0);conf.setDebug(false);/Topology runconf.put(Config.TOPOLOGY_MAX_SPOUT_PENDING, 1);Creating Our First Topology | 17LocalCluster cluster = new LocalCluster();cluster.submitTopology(Getting-Started-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年电气控制系统设计的行业趋势
- 贾氏音标课件
- 2026年桥梁施工中的紧急事故处理策略
- 2026春招:销售代表试题及答案
- 2026春招:物流专员题目及答案
- 货运行业安全培训会课件
- 个性化健康管理与慢性病防治策略
- 护理人员心理素质提升与团队协作
- 2026年安庆师范大学单招职业技能考试参考题库带答案解析
- 2026年安徽电气工程职业技术学院高职单招职业适应性考试参考题库带答案解析
- 七年级上册道德与法治第1-4单元共4个单元复习教学设计
- 个人分红收款收据
- 人教版数学五年级上册《多边形的面积》单元作业设计()
- 肾素血管紧张素系统药理
- 海南省职校技能大赛(植物病虫害防治赛项)参考试题库(含答案)
- 银屑病慢病管理
- 成人失禁相关性皮炎的预防与护理-护理团标
- 克拉玛依市克拉玛依区2023-2024学年七年级上学期期末数学强化卷(含答案)
- 新时代五育融合的路径与方式
- 2023年江苏省普通高中学业水平合格性考试数学真题试卷含详解
- DL-T 2571.3-2022 水电站公用辅助设备检修规程 第3部分:水系统
评论
0/150
提交评论