Spring XD:大数据应用的运行时环境

简介

Spring XD(eXtreme Data,极限数据)是Pivotal的大数据产品。它结合了Spring Boot和Grails,组成Spring IO平台的执行部分。尽管Spring XD利用了大量现存的Spring项目,但它是一种运行时环境,而不是一个类库或者框架,它包含带有服务器的bin目录,你可以通过命令行启动并与之交互。运行时可以运行在开发机上、客户端自己的服务器上、AWS EC2上或者Cloud Foundry上。

Spring XD中的关键组件是管理和容器服务器(Admin and Container Servers)。使用一种DSL,你可以把所需处理任务的描述通过HTTP提交给管理服务器。然后管理服务器会把处理的任务映射到处理模块(每个模块都是一个执行单元,作为Spring应用程序上下文实现)中。

该产品具有两种操作模式:-single和multi-node。第一种是由单独的进程负责所有处理和管理的工作。这对于入门很有用,同样适合于应用程序的快速开发和测试。本文中的所有实例都被设计为在单一节点模式下工作。第二种是一种分布式模式。分布式集成运行时(Distributed Integration Runtime,DIRT)会在多个节点之间分发处理的任务。除了可以拥有VM或者物理服务器作为这些节点之外,Spring XD还让你可以在Hadoop YARN集群上运行。

XD管理服务器会把处理的任务切分成彼此独立的模块定义,并把每个模块分配给使用Apache ZooKeeper的容器实例。每个容器都会监听分配给它的模块定义,然后部署模块,创建Spring应用程序上下文来运行它。需要注意的是,在我撰写这篇文章的时候,Spring XD中还不会自带Zookeeper。兼容的版本是3.4.6,你可以从这里下载。

模块通过使用配置好的消息中间件传递消息来共享数据。传输层是可插拔的,并且支持其他两种Pivotal项目——Redis和Rabbit MQ——以及现成可用的内存数据库。

用例

下图让你可以对Spring XD有个总体上的了解。

Spring XD团队认为,对于创建大数据解决方案来说,创建的主要用例有四种:数据吸纳、实时分析、工作流调度以及导出。

数据吸纳提供了一种能力,可以从各种输入源接收数据,并把它传输给大数据存储库,像HDFS(Hadoop文件系统)、Splunk或者MPP数据库。和文件一样,数据源可能包括来自于移动设备、支持MQ遥感传输协议(MQTT)的传感器以及像Twitter之类的社交流的事件。

吸纳过程会贯穿事件驱动数据的处理,以及针对其他类型数据的批处理(MR、PIG、Hive、Cascading、SQL等等)。流和作业的两个世界截然不同,但是Spring XD试图使用通道抽象(channel abstraction)来模糊二者之间的边界,从而让流可以触发批处理作业,而批处理作业也可以发送事件从而触发其他流。

对于流来说,会通过叫做“Taps”的抽象来支持某些实时分析,像获取指标和计数值。从概念上,Taps让你可以介入到流中,执行实时分析,并有选择地为外部系统生成数据,像GemFire、Redis或者其他内存数据网格。

一旦你在大数据仓库中拥有数据,那么就需要某种工作流工具来对处理进行调度。调度非常必要,因为你编写的脚本或者map-reduce作业通常会长时间运行,并采用带有多个步骤的事件链的方式。理想状况下,你需要在事件失败的时候,能够从特定的步骤重新启动,而不是完全从头来过。

最后还需要导出步骤,从而把数据放到更适合展现的系统中,可能还会做进一步的分析。例如从HDFS到RDBMS(关系型数据库管理系统),在那里你可以使用更为传统的商业智能工具。

Spring XD想要提供一种统一、分布式和可扩展的服务来满足这些用例。它没有从头开始,而是利用了大量已经存在的Spring技术。例如,它使用了Spring Batch来支持工作流调度和导出用例,使用Spring Integration来支持流处理,此外还使用了各种各样的企业应用程序集成模式。其他关键的Spring产品包括:使用Spring Data处理NoSQL/Hadoop工作,使用Reactor为编写异步程序提供简化的API,特别是在使用LMAX Disruptor的时候。

安装Spring XD

在接下来的部分,我们会详细看一下每个用例。你可能想要自己来试验一下这些例子。起步非常简单。

为了开始,你要确保系统至少安装了Java JDK 6或者更新的版本。我推荐使用Java JDK 7。

对于OSX用户,如果还没有Homebrew的话,请安装,然后运行:

时间: 2024-10-24 15:11:42

Spring XD:大数据应用的运行时环境的相关文章

《Android程序设计》一3.6 Android应用的运行时环境

3.6 Android应用的运行时环境 Android独特的应用组件架构在某种程度上是Android多处理并发的产物.为了使该环境能够适应多个供应商的多种应用,信任每个供应商只需要很少的工作,Android执行Dalvik VM的多个实例,每个任务执行一个实例.在3.7节及后续的章节中,我们将探讨组件生命周期如何促进Android提高应用堆内的垃圾收集工作,以及如何促进多个堆之间的内存回收策略.由于这种简单而又可靠的多处理方式,Android必须高效地把内存划分成多个堆.每个堆相对较小,这样内存

《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署》——第2章 搭建容器运行时环境 2.1标准Linux系统的Docker配置

第2章 搭建容器运行时环境 自构建之初,Docker就运行在Linux之上.但与虚拟机不同,虚拟机包含了整个操作系统,而容器本身只是依靠单独的操作系统为其提供运行环境.这就是说,我们有诸多可选的方式来创建Docker的工作环境.具体方式包括以下这些. 标准Linux:多个主要的Linux发行版已将Docker打包在其中.如需最新的Docker特性,只要安装相应Linux发行版的最新版本即可.切记,Docker与操作系统有着密切的联系,因此,Linux的早期版本可能并不包含Docker运行所需的全

介绍WAS V8.5中Liberty运行时环境相关的安全特性

本文主要介绍 WAS V8.5 中 Liberty 运行时环境相关的一些安全特性,并与传统的 WAS 进行一些简单的对比介绍.本文的目的旨在便于客户使用 Liberty. 安全性是指利用多种技术来防止对资源的非法访问,是企业http://www.aliyun.com/zixun/aggregation/14223.html">应用系统的一个关键因素.IBM WebSphere Application Server(以下简称 WAS)提供了一系列的设施和机制来保护敏感的 Java 2 平台.

什么是Java ?Java详解之Java运行时环境

Java运行时环境,即Java Runtime Environment,简称为JRE,是在任何平台上运行Java编写的程序都需要用到的软件.终端用户可以以软件或者插件方式得到和使用JRE.Sun公司还发布了一个JRE的更复杂的版本,叫做JDK,即Java 2 开发包,里面包含了Java需要的编译器.参考文档和调试器等. JRE的成分: Java的类库,包含了编译Java程序所需要的最核心文件. 核心库文件,其中有 数据结构的库,包括列表.字典和树等 XML分析库 安全方面应用库 国际化和本地化应

IBM 开源动态的应用服务器运行时环境 Open Liberty

               日前,IBM 开源了一个名为 Open Liberty 项目,Open Liberty 是一个高模块化.快速和高动态性的应用服务器运行时环境.          2012 年,IBM 发布了 WebSphere Liberty,这是一个专为"云"而设计的应用服务器.但它没有包含许多人们想要的功能,所以,IBM 扩展了 Liberty,使其完全符合 Java EE 7 认证,并将其部署到了每个主要的开发平台,包括 Docker,Kubernetes,以及 C

使用 ARChon 运行时环境在 Ubuntu 上运行 Android 应用

在此之前,我们尝试过在多款安卓应用模拟器工具上运行安卓应用,比如Genymotion.VirtualBox和Android SDK等.但是,有了这套全新的Chrome安卓运行环境,就可以在Chrome浏览器中运行安卓应用了.所以,下面是一些步骤来指导你如何使用ARChon运行时环境在Ubuntu上安装安卓应用. 谷歌已经公布了首批支持原生运行在Chrome OS的安卓应用,而这个全新的"安卓运行时环境"扩展程序使其成为可能.如今,一位名为Vlad Filippov的开发者已经找到了一种

构建大数据健康发展的安全生态环境

大数据等颠覆性技术快速发展的同时,大数据安全面临的挑战也日益尖锐.5月26日至28日在贵州贵阳举办的2017中国国际大数据产业博览会上,大数据安全成为业界热议的焦点话题.专家认为,大数据产业的发展与创新必须直面数据安全的严峻挑战,急需打造和构建一个促进大数据健康发展的安全生态环境. 辨识.管控大数据风险成为国家安全"晴雨表" 在数字经济时代,无论从事哪行哪业,都需要通过对数据资源的收集.整理.挖掘来提升效率.大数据将成为未来最有价值的资源."数据是数字经济时代最重要的生产资料

清华教授魏少军解读国家大数据中心如何运行

10月11日新媒体专电(记者张漫子)中共中央政治局10月9日就实施网络强国战略进行第三十六次集体学习.中共中央总书记习近平在主持学习时指出,我们要深刻认识互联网在国家管理和社会治理中的作用,以推行电子政务.建设新型智慧城市等为抓手,以数据集中和共享为途径,建设全国一体化的国家大数据中心. 全国一体化国家大数据中心概念的首次提出,引发社会广泛关注和热议.国家大数据中心因何而建?它又能解决什么问题?新华社"中国网事"记者就此专访了在中央政治局集体学习上进行讲解的清华大学微电子与纳电子学系主

自贡:大数据中心开通运行

9月6日,自贡市智慧城市大数据中心正式揭牌并开通运行,标志着该市智慧城市建设迈出实质性步伐.据了解,智慧城市大数据中心作为该市智慧城市建设的基础性工程,立足"以应用促发展",在可成长.可持续发展的基础上,融合了"政务云"建设理念.目前,大数据中心已建成服务管理.数据业务机房面积1700余平方米,核心计算能力达到1350核.存储能力408TB.总内存数12TB,出口带宽达10GB,将满足自贡5至10年服务.业务数据集中和构建丰富应用的需要. 本文转自d1net(转载)