介绍IBM InfoSphere Streams平台的典型拓扑结构

本文特别适合流计算应用的开发人员阅读,对需要了解和设计流计算架构的人员也有很大的参考价值。

进入 21 世纪,由于处理器性能的大幅提升以及网络技术和应用的日新月异, 数据的传播和交换正经历革命性的变化。图灵奖获得者吉姆·格雷(Jim Gray)认为,网络环境下每 18 个月产生的数据量等于过去几千年的数据量之和。不仅如此,数据还具有实时、异构、非结构化等一系列特点。目前大多数数据分析平台如 Hadoop,采用离线计算的方式来处理具有上述特征的数据,耗费的时间少则数天,多则数月,极大地延误了业务决策的执行,最终造成商机的丧失。流计算就是伴随着大量非结构化、异构、动态流数据实时分析处理进而快速做出业务决策需要而孕育产生的新技术,它解决了传统离线计算过于耗时这一主要矛盾。与传统离线计算利用相对静态存储的数据进行业务分析的过程不同,流计算要求能够连续地把分析过程运用于不断更新的动态流数据,并且能够对业务分析模型进行动态调整,从而产生更加准确的数据以帮助决策。

IBM 公司的 InfoSphere Streams(以下简称 Streams)产品就是适应这种要求而产生的分布式流计算平台。它源于 IBM 研究院 2003 年开始的 System S 项目,总共有 80 多位 IBM 专业人员参与其中,于 2009 年完成产品化工作,现已成功推出两个主版本。Streams 前瞻性地把支持每秒 6G 或者每小时 21600G (相当于互联网上所有网页数量之和)数据处理能力作为系统设计的指标,实现了流数据“永恒分析”的能力。通过创新的流构架和数学算法,Streams 成功地解决了流计算中一系列具有挑战性的问题:

对于事件和变化需求的迅速响应 对于现有系统连续处理数据能力数量级上的提升 对于多种数据形式和类型的适应 对于系统高可靠性,异构性以及分布性的高效管理

除 Streams 产品之外,比较有名的流计算平台是雅虎贡献给 apache 开源组织的分布式流计算平台 S4。项目开源地址 (http://s4.io/) 首页是这样描述 S4 的:S4 是一个通用的、分布式的、具有可扩展性的、部分容错能力、支持插件的流计算平台。通过研究可以发现,S4 与 Streams 相比,只能算是一个半成品,存在者很多问题尚需解决的问题。比如,数据通讯只支持 UDP 协议,不能保证可靠的数据传输,缺乏负载均衡机制,必须采取手工方式进行部署等。

相比较,Streams 作为一个流计算平台,不仅实现了系统的高可靠性,高可扩展性,负载均衡等设计目标,而且提供了完整的解决方案,包括一个运行时环境和编程模型来简化需要对大批量连续流数据 进行提取、过滤、分析以及关联的应用程序的开发,能够广泛应用于制造、零售、交通运输、金融证券以及监管各行各业的解决方案之中,使得实时快速做出决策的理念得以实现。下面我们先从 Streams 的运行时环境出发,来探讨 Steams 的整体架构;然后给出 Streams 应用程序的拓扑结构以及构建高性能 Streams 应用程序应该考虑的一系列问题。最后将讨论 Streams 的失败恢复机制以及高可用性。

Streams 实例

Streams 运行时环境也称为 Streams 实例,它由一系列相互交互的,运行在一个或多个主机上的服务构成。典型的拓扑结构如下图所示:

图 1 InfoSphere Streams 实例架构

如上图所示的典型的拓扑结构下,管理服务部署于一台独立的管理主机上,提供如下服务:

Streams Web 服务 (SWS) 是一个可选的服务,提供 Streams 实例基于 web 通讯协议的访问与管理。 Streams 应用程序管理器 (SAM) 接收和处理作业的提交和取消请求,主要通过和调度器 (SCH) 进行交互来实现。 Streams 资源管理器 (SRM) 负责 Streams 实例的初始化,聚合系统范围内的性能度量指标,并和 每个应用主机上的主机控制器 (HC) 进行交互。 调度器 (SCH) 从 SRM 收集运行时性能度量指标,之后把这些信息发送给 SAM 来确定哪个应用主机 被调度以运行特定的 Streams 应用程序。缺省的调度模式是基于负载均衡的,基于预测的调度模式 使用资源消耗模型来确定
合适的主机来运行应用程序。 命名服务 (NS) 用于提供管理服务的位置信息。 认证授权服务 (AAS) 用于认证并且授权用户的服务请求和访问。 恢复数据库用来存储管理服务运行状态,当发生软硬件故障时可用于系统的恢复。

除了运行一系列管理服务的管理主机之外,还存在一个或多个应用主机,用于执行 Streams 应用程序。 每个应用主机包括:

主机控制器 (HC) 用于启动和监控运行在特定主机上的所有处理元素 (PE)。 处理元素容器 (PEC) 以操作系统二进制程序形式存在,主要负责对处理元素 (PE) 的动态加载来完成特定的任务。

此外,在这种典型拓扑结构下,还需要共享文件系统来共享实例的配置信息以及跨主机的 SPL 应用程序执行体。共享文件系统必须和 POSIX 兼容,一般可使用网络文件系统 (NFS)和 IBM 通用并行文件系统(GPFS)。

时间: 2024-10-23 18:39:14

介绍IBM InfoSphere Streams平台的典型拓扑结构的相关文章

如何从 IBM InfoSphere Streams 调用 Python 代码

概述 IBM InfoSphere Streams 是一个高性能的实时事件处理中间件.它独特的优势在于能够从各种不同的数据来源获取结构化和非结构化数据,以用于执行实时分析.它通过将一种称为 SPL(Streams Processing Language,流处理语言)的易于使用的应用程序开发语言与一个分布式运行时平台相结合来完成此任务.这个中间件还提供了一个灵活的应用程序开发框架,将使用 C++ 和 Java 编写的代码集成到 Streams 应用程序中.除了 C++ 和 Java,许多构建真实

从IBM InfoSphere Streams应用程序调用Python代码

还可以在一个 Streams 应用程序的上下文内调用 Python 代码.学习如何直接从 IBM InfoSphere Streams 应用程序调用 Python 代码. IBM InfoSphere Streams 是一个高性能的实时事件处理中间件.它独特的优势在于能够从各种不同的数据来源获取结构化和非结构化数据,以用于执行实时分析.它通过将一种称为 SPL(Streams Processing Language,流处理语言)的易于使用的应用程序开发语言与一个分布式运行时平台相结合来完成此任务

使用Java编程语言构建IBM InfoSphere Streams应用程序

简介 IBM InfoSphere Streams( 以下简称 Streams) 是 IBM 于 2009 年推出的具有高可靠性,高可扩展性,分布式流计算平 台,前瞻性地把支持每秒 6G 或者每小时 21600G(相当于互联网上所有网页数量之和)数据处理能力作为系统设计的指标 ,实现了流数据"永恒分析"的能力.它包含一个运行时环境 ( 或者称为实例 ) 和编程模型来简化需要对大批量连续流数 据进行提取.过滤.分析以及关联的应用程序的开发,能够广泛的应用于制造.零售.交通运输.金融证券以

利用Linux通道捆绑来提升IBM InfoSphere Streams性能

本文将从较高的层次介绍通道绑定的概念,如何设置测试环境和我们观察到的结果.在我们的实验中,通道绑定将带宽提高达 68%. 本文探讨 Red Hat Enterprise Linux 上的通道绑定对 IBM InfoSphere Streams 吞吐量和延迟的影响.将介绍如何使用 Red Hat Enterprise Linux 系统设置和配置通道绑定环境,可从在此环境中运行的 InfoSphere Streams 应用程序获得怎样的性能改进.目标读者为熟悉 InfoSphere Streams

如何使用IBM InfoSphere Streams进行模拟

IBM 通过 InfoSphere Streams 提供了一个强大且可扩展的解决方案来处理每秒数百万个数据元组的持续流.该流引擎提供了一种健壮.高度可用且可扩展的运行时,能够在数百个节点和 C++PU 核心上执行分析逻辑.这为您提供了专心使用数据的自由,让您无需花时间研究如何和在何处使用数据. 在一种典型的操作领域,InfoSphere Streams 可帮助您处理动态传入的数据,在不到一秒内对新事件做出反应,无需在事后延迟几分钟或者甚至几小时再处理数据.图 1 显示了一种系统架构,Stream

介绍IBM InfoSphere MDM Reference Data Management Hub v10.0功能

本文描述了关键参考数据概念.http://www.aliyun.com/zixun/aggregation/14208.html">数据模型概述和高层次架构,详细介绍了一个创建参考数据集和映射的场景,就如何将参考数据导出和分发到外部系统提供了一些初步见解. 简介 尽管企业 MDM 系统本身注重主数据管理,不过有一种称为参考数据的特殊类型可用来定义所捕获的主数据实体的各个方面(比如允许某个属性使用的值的范围).参考数据的示例包括状态代码集.员工类型.州/省/国家代码.账簿代号等.由每个属性的

InfoSphere Streams如何帮助您将数据转换为洞察

IBM 在多年前就引入了 "智慧地球" 这个术语.利用这个术语,可以描述 3 个主要属性: 物联化 智能化 互连化 长久以来,这已经形成一个现实.想象一下智能手机的激增,这实际上可能提供了比保持联系更多的功能.智能手机包括 GPS 提供的用于测量温度和湿度的一组传感器.再加上世界各地使用的所有传感器和仪表,我们看到了一个不断演化的真实情况. 这就构成了应该转换成信息 的大量数据.例如,我们可以利用群众的力量来洞察不断变化的情形.我们可以察觉出可能产生机遇或避免严重灾害的趋势.我们可以看

使用InfoSphere Streams的自定义Java 运算符和ICU4J实现实时音译

集成 Java 音译模块和 InfoSphere Streams 的自定义 Java 运算符 简介 在成长型市场区域中,任何解决方案提供商面临的首要挑战是可用数据的方言和语言学的不一致性.由于成长型市场区域中拥有包括英语在内的多种官方语言,所以地区的语言符号逐渐嵌入到了英语符号中.因此,您首先需要执行音译来实现数据中的一致性,然后再继续执行处理/文本分析. 如果使用预定的语言,那么数据音译会为您提供更统一.更一致的结果.本文将介绍使用 InfoSphere Streams 的自定义 Java 运

InfoSphere Streams 3.0连接Streams作业和DataStage作业

作为 InfoSphere Streams 3.0 和 InfoSphere Information Server 9.1 版本的一部分,这两款产品都进行了改进,让 Streams 应用程序和 DataStage 作业之间的集成变得更容易. 本文提供了解释如何在 Streams 应用程序和 DataStage 作业之间创建端到端集成场景的技术细节.阅读本文后您将熟悉以下概念: 从 Streams 应用程序将数据发送到 DataStage 作业,包括如何: 创建或修改一个现有 Streams SP