Storm自带测试案例的运行
之前Storm安装之后,也知道了Storm的一些相关概念,那么怎么样才可以运行一个例子对Storm流式计算有一个感性的认识呢,那么下面来运行一个Storm安装目录自带的测试案例,我们的Storm安装在服务器的/usr/storm/apache-storm-0.9.6中,首先进入这个目录,执行ls可以看到有一个examples目录,这个就是Storm自带的案例,里面有一个项目storm-starter,首先确保maven的正确安装,我们执行命令: cd examples/storm-starter/ 进入项目目录,看到目录下有一个test目录,然后我们执行: mvn test 执行之后,maven会自动搜索依赖并下载相关类库最后完成项目的编译,这个时候要保持网络畅通,等待5-10分钟项目就构建完毕了,会看到目录下多出很多文件,提示BUILD SUCCESS则代表命令执行成功,如下图:
然后,此时执行下面命令运行主类中的main方法:
mvn exec:java "-Dstorm.topology=storm.starter.WordCountTopology"
代码稍微滚动几秒,然后就结束了,最后出现的错误我们可以忽略,如果运行过程中查看仔细的话,会看到中间计算对单词进行了一定的统计,中间某一时刻截图如下:
此时,这个项目我们可以通过tar命令打包,下载到本地,也可以在本地参考在Windows下安装maven的过程,和上面一样执行 mvn test ,执行之后不用执行,因为Windows下默认没有Python,所以要运行测试案例,还要安装Python,此时我们可以打开开发环境eclipse for javaee,单击"File"->"Import",进入项目导入选项,选择Maven->Existing Maven Projects,单击"Next"
然后在打开的界面,选择Browse进入浏览界面,选择我们之前使用maven编译好的项目目录storm-starter,点击Finish完成即可导入了,导入后的项目结构截图如下:
里面的错误可以暂时忽略,不影响运行,其中第一项src/jvm就是源码的存放位置:
此时,我们可以打开storm.starter包下的WordCountTopology.java源文件,这个就是刚才测试案例的主类
代码我们可以简单地看懂一些,首先是创建拓扑,然后设置的数据源所在的类,我么可以看一下RandomSetenceSpout这个类数据源代码,后来就是设置Bolt和MapReduce一样进行了计算,之前执行的时候并不是和服务一样不断执行,而是一会就结束了,通过后面2行代码我们就明白了,这里延时了10s然后将任务shutdown,大体流程就是这样
这个主类的构造方法中调用了一个命令就是执行splitsentence.py脚本,查看这个脚本可以知道该脚本导入了storm.py这个模块,主要的计算逻辑都在storm.py这个脚本所定义的方法中实现,所以之前说过必须安装python才可以正确执行,原因就在这,所以理论上storm可以实现任何语言来编写计算逻辑,只要调用父类的构造方法即可,当然我们可以使用Java直接来编写相应的逻辑
当然这个项目还有很多细节需要理解,目前就先说这些,对Storm入门的项目有一个简单的认识
Storm自带测试案例的运行的更多相关文章
- gtest命令行测试案例
使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便.同时,gtest也为我们提供了一系列的运行参数(环境变量.命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的 ...
- 运行RF测试案例,显示unable to open socket to "localhost:56505" error: [Errno 10061] 错误,且关闭RF卡死的解决办法
问题描述: 执行WEB ui测试案例后,执行请他的测试案例显示unable to open socket to "localhost:56505" error: [Errno 10 ...
- nginx整合tomcat集群并做session共享----测试案例
最近出于好奇心,研究了一下tomcat集群配置,并整合nginx,实现负载均衡,session共享,写篇记录,防止遗忘.---------菜鸡的自我修炼. 说明:博主采用一个web项目同时部署到两台t ...
- robotframework+selenium搭配chrome浏览器,web测试案例(搭建篇)
这两天发布版本 做的事情有点多,都没有时间努力学习了,先给自己个差评,今天折腾了一天, 把robotframework 和 selenium 还有appnium 都研究了一下 ,大概有个谱,先说说we ...
- Kafka吞吐量测试案例
Kafka吞吐量测试案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 领英公司参考连接:https://www.slideshare.net/JiangjieQin/produc ...
- Selenium私房菜系列5 -- 第一个Selenium RC测试案例
<Selenium简介>中讲过,Selenium RC支持多种语言编写测试案例,如:C#,Python.在工作中,我倾向于是用Python这类动态语言编写测试案例,因为这样的测试案例无需编 ...
- django第8天(在测试文件中运行django项目|单表操作)
django第8天 在测试文件中运行django项目 1.将项目配置文件数据库该为mysql,修改配置信息 PORT = '127.0.0.1' DATABASES = { 'default': { ...
- Selenium(十四):自动化测试模型介绍、模块化驱动测试案例、数据驱动测试案例
1. 自动化测试模型介绍 随着自动化测试技术的发展,演化为了集中模型:线性测试.模块化驱动测试.数据驱动测试和关键字驱动测试. 下面分别介绍这几种自动化测试模型的特点. 1.1 线性测试 通过录制或编 ...
- 编写优美的GTest测试案例
http://www.cnblogs.com/coderzh/archive/2010/01/09/beautiful-testcase.html 使用gtest也有很长一段时间了,这期间也积累了一些 ...
随机推荐
- Fortify
sourceanalyzer -b my_buildid -scan -f xxx.fpr -b 取一个build的ID号,通常以这个项目名称加扫描时间为buildID-Xmx 指定JVM使用的最大 ...
- array_fill 用给定的值填充数组
转自:http://www.phpstudy.net/php/165.html PHP array_fill 用给定的值填充数组 array_fill (PHP 4 >= 4.2.0, PHP ...
- redis php扩展安装下载
php的redis 扩展下载地址 Windows :http://windows.php.net/downloads/pecl/releases/redis/2.2.7/ 下载对应版本,一般有两个 n ...
- nodejs开发指南读后感
nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...
- mobile touch事件
touch.js 众所周知,mobile与pc 前端开发的不同中,有一点就是事件的不同,mobile上有touchstart,touchmove,touchend等,而pc上用最多的应该还是我们的cl ...
- SQL 分组去重
select * from (select p.province_name, p.province_code, c.city_name, c.city_code, c.city_id, ROW_NUM ...
- C语言:输入输出
C语言无I/O语句,i/o操作由函数实现 #include<stdio.h> 字符输出函数putchar: 格式:putchar(c) 参数:c为字符常量,变量或者表达式 功能:把字符c输 ...
- WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据
WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据 WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Langu ...
- ubutu之qq安装
1.压缩包下载链接 http://pan.baidu.com/s/1nvlgsGh 2.安装教程(引用自百度经验) 如何在Ubuntu中安装QQ
- C 文件读写 容易疏忽的一个问题
今天需要解决一个问题,将影像瓦片(一堆jpg文件)分别进行读取,并将所有数据以文件流的方式存入一个.db的文件中, 同时将每个jpg数据在db文件中的位置保存下来,作为index存在.idx文件中. ...