您的位置:首页 > 其它

Storm学习第一天

2016-01-22 10:55 211 查看
1.教程

在这个教程中你将学会如何创建Storm拓扑并将他们部署到Storm集群中,下面主要使用java,但是为了展现Storm是支持多语言的,所以我们部分代码也会使用python

1.1 前置条件

这个教程使用了storm-starter项目,所以建议你把项目克隆并且跟随者这些例子.
阅读Setting up a development environment 和 Creating a new Storm project 去准备开发环境

1.2 搭建开发环境

这一页列举了你需要搭建环境的步骤:

下载Storm, 解压它, 把解压后的路径增加到你的PATH中,为了能够开启和关闭远程的拓扑, ~/.storm/storm.yaml放置节点信息,下面更详细的说明了上面的步骤

1.2.1 什么是开发环境

Storm有二种操作模式: 本地模式和远程模式. 在本地模式中, 你能在本地开发和测试你写的拓扑. 在远程模式中, 你把拓扑提交到集群运行.

一个Storm开发环境有你能在本地模式开发和测试, 为远程模式执行而打包拓扑, 在远程提交或者杀死拓扑的全部内容.

让我们快速看一遍你的机器和远程集群的关系. 一个Storm集群叫"Nimbus"的主节点管理的. 你的机器去和Nimbus通信去提交代码 (打包成jar) 和拓扑们以便能在集群上执行 , Nimbus把代码分发到集群上并且安排workers去运行你的topology(拓扑). 你的机器用storm命令行去和Nimbus通信. storm client只能在远程模式下使用; 不能被用于本地 的开发和测试.

1.2.2 本地安装Storm

如果你想要从你的机器提交topologies到远程的集群, 你应该现在本地安装Storm. 本地安装使得你能与远程集群通信. 为了在本地安装Storm, 下载并解压到你的电脑的 任何一个地方. 把解压后的路径增加到你的path并且保证/bin/storm是可以执行的.

本地安装只是使得你能与远程集群通信. 为了在本地环境下开发测试一个拓扑, 建议你使用Maven来添加Storm依赖. 你能在Maven阅读到更多

1.2.3 在远程模式中开始和结束topologies

上一步让你在本地安装Storm是为了让你与远程的集群通信的. 现在你所需要做的就是告诉客户端要与哪个Storm集群通信. 为了实现这个, 你所需要做的就是把master 的IP地址放置在~/.storm/storm.yaml文件中. 它的内容应该像是这样:

nimbus.host: "123.45.678.890"
可选择的是, 如果你使用 storm-deploy项目在AWS上准备集群, 他将要自动的设置~/.storm/storm.yaml. 你能自动的连接Storm集群(或者在躲着集群中转换) 通过使用

"attach" 命令, 像这样:

lein run :deploy --attach --name mystormcluster
1.3 创建一个新的Storm项目

这页主要说明如何创建Storm项目. 步骤是:

把Storm jar增加到classpath,如果使用多种语言, 增加multilang目录classpath,跟我来一起在eclipse中创建strom项目.

1.3.1 把Storm jar增加到classpath

为了开发Storm topologies你需要发Storm jar增加到classpath. 强烈建议使用Maven. 这里有一个开发Storm的pom.xml的例子. 如果你不使用Maven, 你能够把jar包包 含在你的classpath中.为了在Eclipse设置classpath, 创建一个新的java项目, 包含src/jvm/作为一个原路径, 并且确认有的的在lib/ 和 lib/dev/ 中的jar包都被引用.

1.3.2 为了使用多语言,把多语言增加到classpath中

I如果你用不是java的其他语言实现spouts或者bolts, 这些文件应该在项目的multilang/resources/ 目录下. 为了让Storm在本地模式中发现这个目录, resources/ dir需要 在classpath中. 你能在eclipse中把multilang/作为源文件夹加入进去就可以实现这一点. 也有可能需要添加multilang/resources源文件夹

为了查看用其他语言写topologies, 参考Using non-JVM languages with Storm.

为了测试Eclipse的项目可以正常工作,你现在应该能运行 WordCountTopology.java文件. 将要看到持续10秒的信息打印





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: