下载  >  课程资源  >  讲义  > 细细品味Storm_Storm简介及安装

细细品味Storm_Storm简介及安装 评分

细细品味Storm_Storm简介及安装
创建时间 修改时间 修改次数: 简介 是由专业数据分析公司 开发的一个分布式实时数据处理软件,可以简 单、高效、可靠地处珄大量的数据流。 在年月收购该公司,并于年月 底正式将 项日开源。 被托管在 上,日前最新版本是 软件核心 部分使用 开发,外围部分使用开发 发音同 )是语言的 种现代方言。类似于 支持一种功能性编程风格,但 还引入」一些特 性来简化多线程编程(一种对创建很有用的特性) 列举了 的三大类应用 ●信息流处理( 可用来实时处理新数据和更新数据库,兼只容错性和可扩展性。 ●连续计算( 可进行连续询并把结果即时反馈给客户端。比如把 上的热门话题 发送到浏览器中。 分布式远程程序调用( 可用来并行处理密集查询。的拓扑结构是一个等待调用信息分布函数 当它收到一条信息后,会对査询进行计算,并返回查询结果。举个例子 可以做并行搜索或者处理大集合的数据。 的主工程师 表示: 可以方便地在一个计算机集群中编写与可 扩展的实时计算, 之于实时处理,就好比 之于批处理。 保让每个消息 都会得到处理,而且它很快在一个小集群中,每秒可以处理数以百万计的消息。更棒的 是你可以使用任意编程语言来做开发。 当然也存在一些缺点:开源版的有个最大的缺点,就是只支持单 节点,一旦 节点挂掉就只能重启,存在单点失效的问题; 是一个在上 运行的动态函数式编程语言,优势在于流稈计算, 的核心部分由 编写,虽然 性能上提髙不少但同时也提髙了维护成本。 主要特点 拥有低延迟、高性能、分冇式、叫扩展、容错等特性,可以保证消恳不丟失,消 息处理严格有序。 的主要特点如下所示 简单的编程模型。类似于 降低了并行批处理复杂性 降低了进 行实时处理的复杂性 ●可以使用各种编程语言。你可以在之上使用各利编程语言。默认支持 和 。要增加对其他语言的支持,只需实现·个简单的 通 信协议即可 ●容错性。 会管理工作进程和节点的故障。 水平扩展。计算是在多个线程、进程和服务器之间并行进行的。 可靠的消息处理 保证每个消息至少能得到一次完整处理。任务失败时,它 会负责从消息源重试消息。 屮国北京一一虾皮工作室( 编辑:虾皮 创建时间 修改时间 修改次数: 快速。系统的设计保证了消息能得到快速的处理,使用作为其底层消息队列。 本地模式 有一个“本地模式”,可以在处理过程中完全模拟 集群。 这让你可以快速进行开发和单元测试。 集群由一个主节点和多个工作节点组成。主节点运行了个名为“ 的守 护进程,用于分配代码、布置任务及故障检测。每个工作节氐都运行了一个名为 的守护进程,用于监听工作,开始并终止工作进程 和 都能快速失败 而且是无状态的,这样一来它们就变得|分健壮,两者的协调工作是由 来完成的 建立 Topology.本地彐录 I-itaskbeats topology. dp 捉交 topology Nimbus ttasK-Ing F/askS 监Task跳 计算工作量asKs Topology d 分配 Tasks zook client 启动 Topology Assignment TOpolog. d 获取分配的 Tasks nc de->ho st 启动任务 七k->B+prt(好门〕 建立task之同的连接 Supervisor Supervise 1-/storms ker superv心跳 censors Task Task →|[ supervisor id socket 图 上作沇程 第一步:客户端提父拓扑到 。第二步: 针对该拓扑建立本地的目录根据 的配置计算,分配 在 上建立 节点存储和 机器节点中 的对应关系。第三步:在 上创建 节点来监 控的心跳,启动 。第四步: 去 上获取分配的,启动 多个进行,每个 生成 个 个线程:根据 信息初始化建立 之间的连接;和之间是通过 管理的;后整个拓扑运行起来 的术语包括 和 是被处理的数据。 是数据源。处理数据。是运行于或中 的线程。 是运行这些线程的进程 规定了接收什么东西作为 输入数据。数据可以随机分配(术语为),或者根据字段值分配(术语为),或 者广播(术语为),或者总是发给个(术语为),也可以不关心该数据(术 语为),或者由自定义逻辑来决定(术语为 是由 连 接起米的 和节点网络。 屮国北京一一虾皮工作室( 编辑:虾皮 创建时间 修改时间 修改次数: 可以和 相提并论的系统有 其中和 最接近的就是。两者最大的区别在于会保证消息得到处理。这些系统中有的 拥有内建数据存储层,这是所没有的,如果需要持久化,可以使用一个类似于 或这样的外部数据床。 基本概念 首先我们通过一个 和 的对比来了解中的基本概念。 表 和 角色对比 系统角色 应用名称 组件接口 接下来我们再来具体看一下这些概念。 负责资源分配和任务调度。 :负责接受 分配的任务,启动和停止属于自己管理的 进 程 :运行具体处理组件逻辑的进程 中每一个 的线程称为一个在 之后,不 再与物理线程对应,同一个 的可能会共享一个物理线程,该线程称 为 下面这个图措述了以上几个角色之间的关系 Topology1提交拓扑 Nimbus 机器2 机器1 Zookeeper Supervisor Supervisor 1获取任务 4片 理WUke Worker Executor xecufor1 Worker 1 Wor kert Executor Executor 5 Worker发 Worker 2 Worker 行任务 图 角色间关系 屮国北京一一虾皮工作室( 编辑:虾皮 创建时间 修改时间 修改次数: 中运行的一个实时应用程序,因为各个组件间的消息流动形成逻 辑上的一个拓扑结构。 在 中产生源数据流的组件。通常情况下会从外部数据源 中读取数据,然后转换为 内部的源数据。是个主动的角色,其接 口中有个 函数, 框架会不停地调用此函数,用户只要在其中生成 源数据即可。 :在一个 中接受数据然后执行处理的组件。可以执行过滤、函数 操作、合并、写数据库等任何操作 是一个被动的角色,其接口中有个 函数在接受到消息后会调用此函数,用户可以在其中执行自己 想要的操作 一次消息传递的基本单元。本来应该是一个 的,但是由于各 个组件问传递的的字段名称凵经事先定义好,所以中只要按序填入各 个就行了,所以就是一个 源源不断传递的就组成了 是实现了 的思想,将数据切片计算来处理大量的离线数据 处理的数据必须是经存放在上或者类似的数据库中,所以 实现的时候 是通过移动计算到这些存放数据的机器上来提高效率的:而不同 是一个流计 算框架,处理的数据是实时消息队列中的,所以需要我们写好一个 逻辑放在那,接 收进来的数据来处理,所以是通过移动数据平均分配到机器资源来获得高效率。 的优点是处理数据量大(瓶颈是硬盘和 ,网络等),分析灵活,可以 通过实现 等拼接 命令或者直接使用 等来灵活分析数据。适应对 大量维度进行组合分析。其缺点就是慢:每次执行前要分发包, 每次数据 超出阙值后会将数据写入木地文件系统,然后在 的时候再读进来。 的优点是全内存计算,因为内存寻址速度是硬盘的百万倍以上,所以的速 度相比较 非常快(瓶颈是内存,)。其缺点就是不够灵活:必须要先写好 结构米等数据进来分析。 关注的是数据多次处理一次写入,而 关注的是数据一次写入,多次查询 使用。 系统运行起来后是持续不断的,而 往往只是在业务需要吋调用数据。 基础架构 集群类似于一个集群。然而你在 的运行“ 在 上你运行“ 和 ”本身有很大的不同,其中一个关键 的区别是, 的上作最终完成,而 处埋消息永远保持(或直到你杀了它)。 集群有主要有两类节点:主节点和工作节点。主节点上运行一个叫做“ 的 守护进程,也就是类似 的 负责在集群分发的代码,将任务 分配给其他机器,和故障监测。 每个工作节点运行·个叫做” 的守护进程。 监听分配给它的机器, 屮国北京一一虾皮工作室( 编辑:虾皮 创建时间 修改时间 修改次数: 根据 的委派在必要时启动和关闭工作进程。每个工作进程执行 的一个子 集。一个运行中的 由很多运行在很多机器上的工作进程组成 slaves Supervisor worker worker Nimbus supervisor worker Supervisor arke rk Zookeeper cluster 架构 和 之间所有的协调⊥作是通过个 集群。此外, 的守护进稈和 守护进稈是无法连接和无状态的:所有的状态维持在 或保存在本地磁盘上。这意味着你可以 或 进程,所以他们不需 要做备份。这种设计导致集样具有令人难以置信的稳定性。 实现了种数据流模型,其中数据持续地沇经个转换实体网络。·个数据流的 抽象称为一个流(),这是一个无限的元组序列。元组()就像一种使用一些附 加的序列化代码来表示标准数据类型(比如整数、浮点和字节数组)或用户定义类型的结构。 每个流由一个唯—定义,这个可用」构建数据源和接收器()的拓扑结构。流起 源于喷嘴( ), 将数据从外部来源流入 拓扑结构中。 与已 图 的拓扑结构 屮国北京一一虾皮工作室( 编辑:虾皮 创建时间 修改时间 修改次数: 接收器(或提供转換的实伓)称为螺栓()。螺栓实现了一个流上的单一转换和一个 拓扑结构中的所有处理 既可实现 之类的传统功能,也可实现更复 杂的操作(单步功能),比如过滤、聚合或与数据库等外部实体通信。典型的 拓扑结 构会实现多个转换,因此需要多个具有独立元组流的 和 都实现为 系 统中的个或多个任务。 但是, 架构中一个最冇趣的特性是有保障的消息处理 可保证一个 发射出的每个元组都会处理;如果它在超时时间内没有处理, 会从该重新发射 该元组。此功能需要一些聪明的技巧来在拓扑结构中跟踪元素,也是的重要的附加价 值之·。 除了支持可靠的消息传送外, 还使用 )最大化消息传送性能(删 除中间排队,实现消息在任务闩的直接传送 合并了拥塞检测并调整了它的通信,以 优化可用的带宽。 版本的第一亮点是引入了 冈络传输机制实现可插拔 形式,当前包含两种方式:原来的传输,以及新的实现;在早期版本中( 之前的版木) 只支持传输,由于是一个木地库( ),对平台 的依赖性较高,要完全正确安装还是有一定挑战性。而且版本之问的差异也比较大; 提供了纯的替代方案,消除了的本地库依赖,且比的网络传输 性能快一倍以上。 工作原理 Topology Bolt a Bolt B Stream Grouping Spout Bolt c Task 图 里面各个对象的示意图 屮国北京一一虾皮工作室( 编辑:虾皮 创建时间 修改时间 修改次数: 【计算拓补: 个实时计算应用程序的逻缉在 里面被封装到 对象里面,我把它叫做 计算拓补。 里面的 相当于 里面的一个 ,它们的关键 区别是:个 最终总是会结束的,然而个 的 会直运行, 除非你显式的杀死它。一个 是 和 组成的图状结构,而链接 和 的则是 【消息流: 消息流是 里面的最关键的抽象。一个消息流是一个没有边界的序列,而这 些 会被以一种分布式的方式并行地创建和处理。对消息流的定义主要是对消息流里面 的的定义,我们会给里的每个字段一个名字。并且不同的对应字段的类型 必须一样。也就是说:两个的第一个宇段的类型必须一样,第二个字段的类型必须 样,但是第个字段和第二个字段可以有不同的类型。在默认的情况下, 的字段类 型可以是: 和 你还可 以自定义类型一一只要你实现对应的序列化器 每个消息流在定义的时候公被分配给一个,因为单向消息流是那么的普煸, 定义了一些方法让你可以定义一个 而不用指定这个。在这种 情况下这个 会有个默认的 【消息源: 消息源 是 里面一个 里面的消息生产者。一般来说消息源会从 个外部源读取数据并且向 里面发出消息:。消息溟可以是可靠的也可 以是不可靠的。一个可靠的消息源可以重新发射一个如果这个没有被成功 的处理,但是个不可靠的消息源 旦发出个就把它彻底忘了一一也就不 可能再发了。 消息源可以发射多糸消息流。使用 来定义多个 ,然后使用 来发射指定的 类里面最重要的方法是 要么发射一个新的到 里面或者简 单的返回如果已经没有新的了。要注意的是 方法不能 的实现, 因为 在同一个线程上面调用所有消息源的方法。 另外两个比较重要的方法是和 在检测到一个被整个 成功处理的时候调用否则调用 只对可靠的 调用和 【消息处理者: 所有的消息处理逻辑被封装在里面。 可以做很多事情:过滤、聚合、査询 数据库等等等等。 屮国北京一一虾皮工作室( 编辑:虾皮 创建时间 修改时间 修改次数: 可以简单的做消息流的传递。复杂的消息流处理往往需要很多步骤,从而也就需 要经过很多比如算出一堆图片里面被转发最多的图片就至少需要两步:第一步算出 每个图片的转发数量。第二步找出转发最多的前个图片。(如果要把这个过程做得更具有 扩展性那么可能需要更多的步骤)。 可以发射多条消息流,使用 定义 ,使用 来选择要发射的 的主要方法是 它以·个作为输入, 使用 来发 射 必须要为它处理的每一个调用 的方法,以通知 个被处理完成了。从而我们通知这个的发射者 般的流程是 处理一个输入 发射个或者多个,然后调用通知 自凵已经处理过这 了 提供了一个 公自动调用。 :消息分发策略】 定义一个 的其中一步是定义每个接受什么样的流作为输入。 就是用来定义一个应该如果分配给面的多个 里面有种类型的 随机分组,随机派发 里面的 保证每个接收到 的数目相同。 按字段分组,比如按 来分组,具有同样 的公被 分到相同的,而不同的则会被分配到不同的。 :广播发送,对」每一个,所有的都会收到。 全局分组,这个被分配到 中的一个的其中一个 。再具体¨点就是分配给值最低的那个。 :不分组,表示 不关心到底谁会收到它的。日前这种分 组和 是一样的效果,有一点不同的是会把这个放到这 个的订阅者同一个线程里面去执行。 直接分组,这是一种比较特别的分组方法,用这种分组意味着消 息的发送者指定由消息接收者的哪个处理这个消息。只有被声明为 的消息流可以声明这种分组方法。而且这种消息必须使用 方法来发射。消息处理者可以通过 来获取处理它的消息的 方法也会返回 【可靠性: 保证每个会被 完整的执行。会追踪由每个 所产生 的树(个处理个之后可能会发射别的从而可以形成树状结构) 并且跟踪这棵树什么时候成功处理完。每个 都有一个消息超时的设置,如果 在这个超时的时间内检测不到某个树到底有没有执行成功,那么 会把 这个标记为执行失败,并且过一会会重新发射这个 屮国北京一一虾皮工作室( 编辑:虾皮

...展开详情
所需积分/C币:11 上传时间:2015-09-15 资源大小:1.33MB
举报 举报 收藏 收藏
分享 分享
细细品味Storm_Storm简介及安装

细细品味Storm_Storm简介及安装

立即下载
storm_Kafka_demo

storm_Kafka_demo

立即下载
storm_workspace

storm_workspace

立即下载
Storm_Trident

storm_Trident例子

立即下载
Storm_WebService_测试工具

Storm_WebService_测试工具

立即下载
storm_API.chm

storm_api.chm storm开发手册

立即下载
storm_eclispe调试代码

storm_eclispe调试代码

立即下载
Storm_WebService.zip

用于Storm_WebService测试程序

立即下载
Storm_NoAD_V3.3.exe

Storm_NoAD_V3.3.exe 暴风影音去广告补丁

立即下载
GoldenAutumn_Storm_AP.part1.rar

GoldenAutumn_Storm_AP.part1.rar 刷机包,本人使用还可以推荐

立即下载
黑莓9530主题storm_Digital_Galaxy.rar

黑莓多年来都在中国发展较小,但是应用和手机性能都是很好的

立即下载
hadoop_openstack_storm_spark等视频文档书籍汇总

about 云资源汇总指引 V1.6:包括 hadoop,openstack,storm,spark 等视频文档书籍汇总

立即下载
Storm_r1.1-Adarna

Storm_r1.1-Adarna简单的说WebService就是是远程的某个服务器对外公开了某种服务,或者理解为对外公开了某个功能或者方法,而我们可以通过编程来调用该服务以获得我们需要的信息。

立即下载
Mastering Apache Storm_Publishing at 2017.pdf

Mastering Apache Storm_Publishing at 2017.pdf 非扫描版

立即下载
GoldenAutumn_Storm_AP.part2.rar

a1200 刷机包 本人使用推荐,09年最新刷机包

立即下载
Java-webservice接口测试工具Storm_r1.1-Adarna

Java webservice接口测试工具 Storm_r1.1-Adarna 方便使用

立即下载
Storm_r1.1-Adarna.zip工具

soapui工具很好用,很方便;可以很好的测试webservices接口

立即下载
summingbird-storm_2.9.3-0.2.2.zip

netlib-java.zip,线性代数系统的任务关键组件.高性能线性代数(低级)

立即下载
Storm Blueprints_ Patterns for Distributed Real-time Computation-带书签目录文字版

Storm Blueprints_ Patterns for Distributed Real-time Computation-带书签目录文字版

立即下载
ModbusTCP/RTU网关设计

基于UIP协议栈,实现MODBUS联网,可参考本文档资料,有MODBUS协议介绍

立即下载