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文件中. 它的内容应该像是这样:
"attach" 命令, 像这样:
这页主要说明如何创建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秒的信息打印
在这个教程中你将学会如何创建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 mystormcluster1.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秒的信息打印
相关文章推荐
- 在命令行获取标准输入序列的反互序列,pep序列和长度信息
- 2015年值得关注的8款跨平台开发工具(界面类)
- 转:探讨跨域请求资源的几种方式
- 第一篇 理论 1.7 精进-正念-正知,如理作意和觉察力 - 阿姜念·身念处禅观修法
- 测试专用,别乱点击进来
- 定制 LAMP 网站服务平台
- Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果
- 浅析Java中的final关键字
- 深度学习与计算机视觉系列(10)_细说卷积神经网络
- 关于Ionic run android 的Error executing "adb devices": error解决办法
- 负载均衡之Nginx+tomcat+redis实现session共享的负载均衡
- STL迭代器失效的问题
- ViewPager子View滑动事件冲突解决
- 可以参考《SpringMVC接口测试异常:Can not deserialize instance
- j2ee 单点登录cas证书生成
- git add 提示错误
- 【Leetcode】之 Permutations
- Dijkstra 算法
- 后缀数组 TYVJ P1860 后缀数组
- POJ 3436 ACM Computer Factory(拆点+前向星dinic)||(拆点+邻接矩阵dinic)||(不拆点+dinic))