云计算与大数据技术 教学课件 ppt 作者 王鹏 黄焱 安俊秀 张逸琴第8章-Storm—基于拓扑的流数据实时计算系统

上传人:w****i 文档编号:94484048 上传时间:2019-08-07 格式:PPT 页数:44 大小:1.52MB
返回 下载 相关 举报
云计算与大数据技术 教学课件 ppt 作者  王鹏 黄焱 安俊秀 张逸琴第8章-Storm—基于拓扑的流数据实时计算系统_第1页
第1页 / 共44页
云计算与大数据技术 教学课件 ppt 作者  王鹏 黄焱 安俊秀 张逸琴第8章-Storm—基于拓扑的流数据实时计算系统_第2页
第2页 / 共44页
云计算与大数据技术 教学课件 ppt 作者  王鹏 黄焱 安俊秀 张逸琴第8章-Storm—基于拓扑的流数据实时计算系统_第3页
第3页 / 共44页
云计算与大数据技术 教学课件 ppt 作者  王鹏 黄焱 安俊秀 张逸琴第8章-Storm—基于拓扑的流数据实时计算系统_第4页
第4页 / 共44页
云计算与大数据技术 教学课件 ppt 作者  王鹏 黄焱 安俊秀 张逸琴第8章-Storm—基于拓扑的流数据实时计算系统_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《云计算与大数据技术 教学课件 ppt 作者 王鹏 黄焱 安俊秀 张逸琴第8章-Storm—基于拓扑的流数据实时计算系统》由会员分享,可在线阅读,更多相关《云计算与大数据技术 教学课件 ppt 作者 王鹏 黄焱 安俊秀 张逸琴第8章-Storm—基于拓扑的流数据实时计算系统(44页珍藏版)》请在金锄头文库上搜索。

1、云计算与大数据技术,人民邮电出版社,王鹏 黄焱 安俊秀 张逸琴 编著,目 录,第1章 云计算与大数据基础 第2章 云计算与大数据的相关技术 第3章 虚拟化技术 第4章 集群系统基础 第5章 MPI面向计算 第6章 Hadoop分布式大数据系统 第7章 HPCC面向数据的高性能计算集群系统 第8章 Storm基于拓扑的流数据实时计算系统 第9章 服务器与数据中心 第10章 云计算大数据仿真技术,CONTENTS,第8章 Storm基于拓扑的流数据实时计算系统,第8章 Storm基于拓扑的流数据 实时计算系统,云计算与大数据技术,第8章 Storm基于拓扑的流数据实时计算系统,8.1 Storm简

2、介 8.2 Storm原理及其体系结构 8.2.1 Storm编程模型原理 8.2.2 Storm体系结构 8.3 搭建Storm开发环境 8.3.1 Storm的安装步骤 8.3.2 Storm 的设置 8.3.3 Storm 的启动 8.4 Storm使用实例 8.4.1 使用Maven管理storm-starter 8.4.2 WordCountTopology实例分析,8.1 Storm简介,BackType公司(后被Twitter收购)前工程师Nathan Marz,在使用Hadoop过程中,因为不满意Hadoop系统的扩展性和其代码的繁琐性,以及其粗糙的容错处理机制,提出了一种支持

3、实时流处理、扩展机制简单的编程模型Topology,取名为Storm。 Storm于2011年9月19号正式开源,实现Storm的语言为一种运行于Java平台的LISP方言Clojure。 Storm是很有潜力的流处理系统,出现不久,就在淘宝、百度、支付宝、Groupon、Facebook、Twitter等平台上得到使用。第三方支付平台支付宝使用Storm来计算实时交易量、交易排行榜、用户注册量等,每天处理的信息超过1亿条,处理的日志文件超过6TB;团购网站Groupon使用Storm对对实时数据进行快速数据清洗、格式转换、数据分析;Twitter使用它来处理tweet(用户发送到Twitte

4、r上的信息)。,8.1 Storm简介,Storm的Topology编程模型简单,在实际任务处理时却很实用。Topology,实际上就是任务的逻辑规划,包含Spout和Bolt两类组件,Spout组件负责读取数据,Bolt组件负责任务处理。 与MapReduce相比,它的任务粒度相对灵活,不只局限于Mapreduce中的Map()和Reduce()函数,用户可以根据任务需求编写自己的函数。 同时,它不存储中间数据,组件与组件之间的数据传递通过消息传递的方式,对于很多不需要存储中间数据的应用来说,Topology编程模型降低了处理过程的繁琐与延迟。,8.1 Storm简介,(1)Storm具有很

5、好的容错性、扩展性、可靠性和健壮性。 Storm使用Zookeeper(Hadoop中的一个正式子项目,后被广泛使用的一种分布式协调工具)作为集群协调工具,当发现正在运行的Topology出错的时候,Zookeeper就会告诉Nimbus(Storm系统的主进程,负责分发任务等操作),然后Nimbus就重新分配并启动任务。 在Storm中,Topology被提交后,在没有被手动杀死之前,它都将一直处于运行状态。这些措施都是为了保证该系统的容错性。Storm采用三进程架构Nimbus、Supervisor、Zookeeper,无论是集群还是单机都只有这三个进程。当需要在集群中新加入节点的时候,只

6、需要修改配置文件和运行Supervisor和Zookeeper进程即可,扩展起来十分方便。 另外,Storm采用消息传递方式进行数据运算,数据传输的可靠性至关重要。Storm系统中传递的消息,主节点都会根据消息的产生到结束生成一棵消息树。所以,消息从诞生到消亡的整个过程,它都会被跟踪。如果主节点发现某消息丢失,那么它就会重新处理该消息。正是因为有了容错性、可靠性的保障,该系统运行中体现出健壮性,不会出现轻易宕机、崩溃的现象。,8.1 Storm简介,(2)Storm并行机制灵活。 各个组件的并行数由用户根据任务的繁重程度自行设定,如果该组件处理的任务复杂度高,耗费时间多,那么并行数目的设置就偏

7、大些,相反地,并行数目的设置则偏小些。这样,拓扑中的每个组件就能很好地配合,最大化地利用集群性能,提高任务处理效率。 (3)Storm支持多种语言。 Storm内部实现语言是Clojure,基于Storm开发的应用却可以使用几乎任何一种语言,而所需的只是连接到Storm的适配器。Storm默认支持Clojure、Java、Ruby和Python,并已经存在针对 Scala、JRuby、Perl 和 PHP 的适配器。更多的适配器将会随着应用的扩展变得更加地丰富。,8.2 Storm原理及其体系结构,8.2.1 Storm编程模型原理 Storm编程模型采用的是生活中常见的并行处理任务方式流水线

8、作业方式。Storm实现一个任务的完整拓扑如图8.1所示,在Storm中每实现一个任务,用户就需要构造一个这样的拓扑。该拓扑包含两类组件:Spout和Bolt。Spout负责读取数据源,Bolt负责任务处理。Storm处理一个任务,往往会把该任务拆分为几部分,分别由不同的Bolt组件来实现。这是流水线作业中实现并行和提升任务处理效率采用的方法。,8.1 Storm编程模型Topology,8.2.1 Storm编程模型原理,比如,使用Storm处理单词统计的任务(WordCount),该任务的拓扑如图8.2所示。spout组件负责读取要统计的数据源中的句子,split组件负责将接收到的句子拆分

9、成单个的单词,把这些单词发送至count组件,count组件负责统计发送过来的单词出现的次数。,图8.2 WordCount Topology,8.2.1 Storm编程模型原理,这样一个统计单词的任务就被拆分为三部分来操作,每部分可以根据任务的繁重程度来规划并行数目,各个组件的并行数没有明确规定。比如,可以设置spout并行数为2,split并行数为8,count并行数为12,如图8.3所示。,图8.3 WordCount并行工作模式,8.2.2 Storm体系结构,Storm中因为没有使用文件系统,相比于Hadoop它的架构要简单得多。Storm依然采用的是主从架构模式,即有一个主进程和多

10、个从进程。除了这两个进程以外,还有在主进程与从进程之间进行协调的进程Zookeeper。Storm的体系结构如图8.4所示。,图8.4 Storm体系结构,8.2.2 Storm体系结构,知道了Storm是由三类进程组成,但是Storm的三进程部署到具体的集群上又是怎样的呢?因为主进程任务是负责分发任务和调度任务,在一个任务中只需要一个这种角色,所以主进程Nimbus只需要部署到一个节点上。而工作机进程是负责实际的任务处理,那么一个集群有多少节点配置多少个工作机进程,这样才能最大限度地利用集群性能,所以Supervisor需要部署到集群中的每一个节点上。Zookeeper进程负责主进程与工作进

11、程协调的任务,因此它也需要部署到集群中的每一个节点上。知道了这点,下面的部署安装也就不难理解了。,8.3 搭建Storm开发环境,搭建Storm开发环境首先需要安装Storm系统需要的依赖包,然后再安装Storm系统工具包。Storm开发环境可以搭建在单机上,也可以搭建在集群上。本节我们在4个节点构建的集群上搭建Storm开发环境。 1实验环境说明 (1)操作系统:CentOS 64位(可以为32位,相应地JDK也需要32位)。 (2)集群配置:4个节点,IP:192.168.122.101104(根据自己集群情况自行设置)。,8.3 搭建Storm开发环境,2安装内容说明 (1)依赖软件:P

12、ython、JDK、gcc-c+、uuid*、libtool、libuuid、libuuid-devel。 (2)安装Storm所需工具包包含Zookeeper、ZeroMQ 、Q 和Storm。 Zookeeper:Hadoop的正式子项目,是一个针对大型分布式系统的可靠协调系统,提供配置维护、名字服务、分布式同步、组服务等功能。Zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 ZeroMQ:类似于Socket的一系列接口,ZeroMQ与Socket的区别在于Socket是端到端的(1:1)的关系,而ZeroMQ是N:M的关系,屏

13、蔽细节使得网络编程更加简单。 Q:针对ZeroMQ的Java binding。 Storm:Storm系统主程序,本文使用的Storm的版本号为0.8.1。,8.3.1 Storm的安装步骤,以下安装均在root用户下完成,所需的工具包存放在压缩包storm.tar.gz中,所以首先要把该压缩包解压。 (1)安装准备。 解压storm.tar.gz包: tar xzvf storm.tar.gz 切换当前工作目录到解压后的storm目录: cd storm,8.3.1 Storm的安装步骤,(2)安装依赖文件。 使用yum方式安装依赖包g+、uuid*、libtool、libuuid、libu

14、uid-devel yum -y install gcc-c+ uuid* libtool libuuid libuuid-devel 安装JDK: chmod +x jdk-6u35-linux-x64-rpm.bin ./jdk-6u35-linux-x64-rpm.bin vi /etc/profile 设置环境变量,在最后面加入: #set java environment JAVA_HOME=/usr/java/jdk-1_5_0_02 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA

15、_HOME CLASSPATH PATH 保存退出,使用命令java -version 检查是否安装成功。,8.3.1 Storm的安装步骤,(3)安装Zookeeper。 将Zookeeper安装包放入系统目录: cp -R zookeeper-3.3.5 /usr/local/ 为该文件夹添加一个符号链接: ln -s /usr/local/zookeeper3.3.5/ /usr/local/zookeeper vim /etc/profile,设置ZOOKEEPER_HOME和ZOOKEEPER_HOME/bin: export ZOOKEEPER_HOME=“/path/to/zoo

16、keeper” export PATH=$PATH:$ZOOKEEPER_HOME/bin 使用zoo_sample.cfg制作$ZOOKEEPER_HOME/conf/zoo.cfg: cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg 新建两个目录用于zookeeper工作时存放日志文件和临时文件: mkdir /tmp/zookeeper mkdir /var/log/zookeeper 至此,Zookeeper已经安装完成。,8.3.1 Storm的安装步骤,(4)安装ZeroMQ。 进入该软件包的目录 cd zeromq-2.2.0 配置安装: ./configure make make install 更新动态链接库 ldconfig ZeroMQ安装完成。,8.3.1 Storm的安装步骤,(5)安

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号