标签:
基础知识Storm是一个分布式的,,可靠的,容错的数据流处理系统。它会把工作任务委托给不同类型的组件,每个组件负责处理一项简单特定的任务。Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt, bolt要么把数据保存到某种存储器,要么把数据传递给其它的bolt。你可以想象一下,一个Storm集群就是在一连串的bolt之间转换spout传过来的数据。
概念解释:spout: 读取原始数据为bolt提供数据。
bolt: 从spout或其它bolt接收数据,并处理数据,处理结果可作为其它bolt的数据源或最终结果。
nimbus: 主节点的守护进程,负责为工作节点分发任务。
topology: 拓扑结构,Storm的一个任务单元。
define field(s): 定义域,由spout或bolt提供,被bolt接收。
安装: 安装 zookeeper :下载 zookeeper :。
将 zookeeper-3.4.7.tar.gz 解压到目录,D:\bin\zookeeper-3.4.7。
复制文件 D:\bin\zookeeper-3.4.7\conf\zoo_sample.cfg 为同目录下的 zoo.cfg。
根据需要修改zoo.cfg的内容。
运行 D:\bin\zookeeper-3.4.7\bin\zkServer.cmd 。
安装 storm : 运行出错处理 :如果报Java版本问题,请安装jdk1.7,并正确设置 JAVA_HOME。
设置环境变量 STORM_HOME=D:\bin\apache-storm-0.10.0 。
设置环境变量 STORM_CONF_DIR=%STORM_HOME%\conf 。
出现“java.net.malformedurlexception unknown protocol D”错误,请设置环境变量 STORM_LOGBACK_CONFIGURATION_FILE=file:///D:/bin/apache-storm-0.10.0/log4j2/cluster.xml
如果报“Unable to delete file”错误,是storm的一个bug,0.8.2版本还没有解决,这个错误在cluster.shutdown();时候抛出。用0.10.0版本不会出现这样的问题。
Storm Web UI 界面如下:
class WordReader :从文件中读取文本内容,每读取一行 emit 给 bolts。
class WordNormalizer :将一行文本内容按单词切分。
class WordCounter :统计单词出现的次数。
class TopologyMain :创建拓扑结构。
源代码见文件附件:examples-ch02-getting_started.zip。
本机调试在开发工具中,直接运行TopologyMain,即可开始体验strom
把Topology发布到集群中需要把 LocalCluster 换成 StormSubmitter 并调用submitTopology方法
//LocalCluster cluster = new LocalCluster(); //cluster.submitTopology("Count-Word-Topology-With-Refresh-Cache", conf, //builder.createTopology()); StormSubmitter.submitTopology("Count-Word-Topology-With_Refresh-Cache", conf, builder.createTopology()); //Thread.sleep(1000); //cluster.shutdown();接下来,把源码压缩成一个jar包,运行Storm客户端命令,把拓扑提交给集群。如果你已经使用了Maven, 你只需要在命令行进入源码目录运行:mvn package。
现在你生成了一个jar包,使用storm jar命令提交拓扑。命令格式:storm jar allmycode.jar org.me.MyTopology arg1 arg2 arg3。
对于这个例子,在拓扑工程目录下面运行:
storm jar Topologies-0.0.1-SNAPSHOT.jar countword.TopologyMain src/main/resources/words.txt
通过这些命令,你就把拓扑发布集群上了。
如果想停止或杀死它,运行:
storm kill Count-Word-Topology-With-Refresh-Cache
参考资料storm 入门:
官方文档:
1.此文档中的文件夹位置请根据需要修改。
2.此文档中中使用的软件版本不一定是最新的。
storm在windows系统下安装调试