linux上安装storm单机模式

来源:互联网 发布:数据库设计的核心 编辑:程序博客网 时间:2024/05/20 04:47

最近的工作设计到了海量的实时的日志分析与重组,讨论之下,想尝试使用storm来开发这套分析程序,于是就开始了新的研究与学习。

名词解释

nimbus:storm集群的中心server,负责监控supervisor的情况
supervisor:每一台集群的机子都有一个supervisor监控topology的运行情况
topology:相当于一个计算任务
spout:用来获取数据并分发到计算模块
bolt:计算模块
worker:跑在supervisor上的java虚拟机进程
executor:跑在worker里的线程
task:跑在executor里的bolt,有可能一个线程跑多个bolt

网上有计算单词出现次数的简单例子程序,这里不重复了,说说我遇到的坑吧

1.Storm单机版的配置

我是用虚拟机安装storm,暂时先将storm zookeeper 等都装在一台centos6.6机子上,Storm版本是最新的9.4

用的java版本是1.7.0_79
python是2.6.6
nimbus的机子上需要先装ZeroMQ和JZMQ

在配置storm.yaml的时候有个不大不小的坑,yaml格式的配置文件 =号的两边都要有空格,不然会报错

配置完后先启动zookeeper,然后是nimbus,然后是supervisor,最后是stormui

这里我启动supervisor的时候报了一个错java.net.UnknownHostException
这个错只要修改下hosts文件,增加本机名以及对应ip即可

2.打包topology并发布到storm上去

1.开发的时候我们会引入storm-core的包,但在发布到storm时需要将这个包排除在外
我们可以使用assembly的配置做到这一点

<assembly    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"><id>jar-with-dependencies</id>    <formats>        <format>jar</format>    </formats>    <includeBaseDirectory>false</includeBaseDirectory>    <dependencySets>        <dependencySet>            <unpack>true</unpack>            <excludes>                <exclude>org.apache.storm:storm-core</exclude>            </excludes>        </dependencySet>    </dependencySets>    <fileSets>        <fileSet>            <directory>src/main/bin</directory>            <outputDirectory>/</outputDirectory>        </fileSet>        <fileSet>            <directory>${project.build.outputDirectory}</directory>        </fileSet>    </fileSets></assembly>

用这个配置文件排除storm的包

打成包后copy到机子上,用storm jar命令就可以运行了

0 0
原创粉丝点击