1. 首页
  2. 考试认证
  3. 微软认证
  4. storm入门完整版

storm入门完整版

上传者: 2020-12-11 10:46:48上传 PDF文件 2.37MB 热度 15次
Storm入门之第一章 详者注:本文翻详自《 》,本书中所有 相关术语都用斜体英 文表示。这些术语的字面意义翻译如下,由于这个工具的名字叫 ,这些术语一律按照气 象名词解释 龙卷,读取原始数据为提供数据 雷电,从或其它接收数据,并处坦数据,处理结果可作为其它的数据源或 最终结果 丽云,主节点的守护进程,负责为工作节点分发任务。 下面的术语跟气象就没有关系了 拓扑结构, 的一个任务单元 定义域,由 或提供,被接收 本文是该书的第一章。 基础知识 是一个分布式的,可靠的,容错的数据流处理系统。它会把工作任务委托给不同类型的组 件,每个组件负责处理一项简单特定的任务。 集群的输入流由一个被称作 的组件管 理 把数据传递给 要么把数据保存到某种存储器,要么把数据传递给其它的。 你可以想象卜,个 集群就是在连串的之间转换 过来的数据 这里用一个简单的例子来说明这个概念。昨晚我在新闻节目里看到主持人在谈沦政治人物和他们 对于各种政治话题的立场。他们一直重复着不同的名字,而我开始考虑这些名字是合被提到∫相 同的次数,以及不同次数之间的偏差。 想像播音员读的宁幕作为你的数据输入流。你可以用一个读取一个文件(或者 通过 或者别的方法)。文本行被传给一个,再被按单词切割。单词流又 被传给另一个,在这里每个单词与一张政治人名列表比较。每遇到一个匹配的名字,第二个 为这个名字在数据库的计数加。你可以随时查询数据库查看结果,而且这些计数是随着 数据到达实时更新的。所有组件(和)及它们之间的关系请参考拓扑图 Sunnies sunr lines fiat apeaR Westin at tim s iee Iwrm nane s lns 现在想象一下,很容易在整个 集群定义每个和 的并行性级別,因此你可以无 限的扩展你的拓扑结构。很神奇,是吗?尽管这是个简单例子,你也可以看到 的强大 有哪些典型的 应用案例? 数据处理流 正如上例所展示的,不像其它的流处理系统, 不需要中间队列。 连续计算 连续发送数据到客户端,使它们能够实吋更新并显示结果,如网站指标 分布式远程过程调用 频繁的密集型操作并行化 组件 对于一个集群,一个连续运行的主节点组织若干节点工作。 在 集群中,有两类节点:主节点 和工作节点 主节点运行着 一个叫做 的守护进程。这个守护进程负责在集群中分发代码,为工作节点分配任务,并 监控故障。 守护进程作为拓扑的一部分运行在工作节点上。一个拓扑结构在 不同的机器上运行着众多的工作节点 因为 在 或本地磁盐上维持所有的集群状态,守护进程可以是无状态的而且失 效或重启时不会影响整个系统的健康(见图) Lumbus Zookeeper集群 Zookeeper集群 在系统底层, 使用了 这是一种先进的, 可嵌入的网络通讯库,它提供的绝妙功能使成为可能。下面列出一些 的特性。 个并发架构的 库 对于集群产品和超级计算,比要快 可通过 (进程内) (进程间) 多播协议通信 异步的可扩展的多核消息传递应用程序 利用扇出 发布订阅 )管道( )请求应答( ),等方式 实现连接 只用了 的特性 在所有这些设计思想与决策中,有一些非常棒的特性成就了独一无二的 简化编程如果你曾试蒼从零开始实现实吋处理,你应该明白这是件多么痛苫的事情。使用 复杂性被大大降低了。 使用一门基于的语言开发会更容易,但是你可以借助一个小的中间件,在上使用任 何语言开发。有现成的中间件可供选择,当然也可以自己开发中间件 容错 集群会关注工作节点状态,如果宕机了必要的时候会重新分配任务 可扩展所有你需要为扩展集群所做的工作就是增加机器 会在新机器就绪时向它们分 配任务。 可靠的所有消息都可保证至少处理一次。如果出错了,消息可能处理不只一次,不过你水远 不会丢失消息。 快速 速度是驱动 设计的一个关键因素 事务性 你 可以为几乎任何计算得到恰好一次消息语义。 Storn入门第二章准备开始 准备开始 在本章,我们要创建一个 工程和我们的第一个 拓扑结构。 下面假设你的版本在以上。我们推荐 提供的 你可以到 下载 操作模式 开始之前,有必要了解一下 的操作模式。有下面两种方式 本地模式 在本地模式下 拓扑结构运行在本地计算机的单 进程上。这个模式用于开发、测 试以及调试,因为这是观察所有组件如何协同工作的最简单方法。在这种模式下,我们可以调整 参数,观察我们的拓扑结构如何在不同的配置环境下运行。要在本地模式下运行,我们 要下载 开发依赖,以便用米开发并测试我们的拓扑结构。我们创建了第一个 工程 以后,很快就会明白如何使用本地模式了 在本地模式下,跟在集群环境运行很像。不过很有必要确认一下所有组件都是线程安全 的,因为当把它们部署到远稈模式时它们可能会运行在不同的进程甚至不同的物理机上, 这个时候它们之间没有直接的通讯或共享内存 我们要在本地模式运行本章的所有例子。 远程模式 在远程模式下,我们向集群提交拓扑,它通常由许多运行在不同机器上的流程组成。远 程模式不会出现调试信息,因此它也称作生产模式。不过在单一开发机上建立一个 集群 是一个好主意,可以在部署到生产环境之前,用来确认拓扑在集群环境下没有任何问题。 你将在第六章学到更多关于远程模式的内容,并在附录学到如何安装一个 集群。 我们在这个工程里创建一个简单的拓扑,数单词数量。我们可以把这个看作 的“Hel Word。不过,这是一个非常强大的拓扑,囚为它能够扩展到几乎无限大的规模,而且只需要做 一些小修改,就能用它构建一个统计系统。举个例子,我们可以修改一下工程用来找出 上的热点话题。 要创建这个拓扑,我们要用一个读取文本,第一个用来标准化单词,第二个为 单词计数,如图所示 交本读器 〓」 地宣本女件 你可以从这个网址下载源码压缩包, 如果你使用_(一个分布式版本控制与源码管理工具),你可以执行 ,把源码检出到你指定的 安装检查 构建 运行环境的第一步是检查你安装的版本。打开一个控带台窗口并执行命令: 控制台应该会显示出类似如下的内容: Java -verslon java version.6.0 26 Java(TM) SE Runtime Enviroment(build 1. 6. 0 26-b03) Java HotSpot(TM) Server VM(build 20. 1-b02, mixed mode) 如果不是上述内容,检查你的安装情况。(参考 创建工程 开始之前,先为这个应用建一个日录(就像你平常为应用做的那样)。这个目录用来存放 工程源码。 接下米我们要下载依赖包,这是一些包,我们要把它们添加到应用类路径中。你可以 采用如下两种方式之完成这步: 下载所有依赖,解压缩它们,把它们添加到类路径 使用 是一个软件项目管理的综合工具。它可以用来管理项目的开发周期的许多方面, 从包依赖到版本发布过程。在这本书中,我们将广泛使用它。如果要检查是否已经安装了 在命令行运行。如果没有安装你可以从 下载。 没有必要先成为一个 专家才能使用 不过了解一下关于 工作方式的基础知 识仍然会对你有所帮助。你可以在 的网站上找到更多的信息 的 依赖引用了运行 本地模式的所有厍 要运行我们的拓扑,我们可以编写一个包含基本组件的 文件 Projectxmlns=http://maven.apacheorg/pom/4.0.0 xmins:xsi-http://www.w3.org/2001/xmlschema-instance xsischemalocation=http://maven.apacheorg/pom/4.0.0 http://mavenapache.org/xsd/mmaven-400.xsd"> Kmodelversion>4.0. 0 groupld>storm. book KartifactId>Getting-Started/artifactId> Version)0.0. 1-SNAPSHOT(/version> < build Plugin org. apache. maven. plug sins/groupId> KartifactId)maven-compiler-plugin 1.6 clojars. org/id> Kurlhttp://clojars,org/repo/ur1> KI-- Storm Depende storm /artifact
下载地址
用户评论