Storm的官方网址:http://storm.apache.org/index.html

:集群部署的基本流程(基本套路):
集群部署的流程:下载安装包、解压安装包、修改配置文件、分发安装包、启动集群;

1:安装一个zookeeper集群,之前已经部署过,这里省略,贴一下步骤;

安装配置zooekeeper集群:
        1.1:解压
            tar -zxvf zookeeper-3.4.5.tar.gz
        1.2:修改配置
            cd /home/hadoop/zookeeper-3.4.5/conf/
            cp zoo_sample.cfg zoo.cfg
            vim zoo.cfg
            修改:dataDir=/home/hadoop/zookeeper-3.4.5/tmp
            在最后添加:
            server.1=master:2888:3888
            server.2=slaver1:2888:3888
            server.3=slaver2:2888:3888
            保存退出
            然后创建一个tmp文件夹
            mkdir /home/hadoop/zookeeper-3.4.5/tmp
            再创建一个空文件
            touch /home/hadoop/zookeeper-3.4.5/tmp/myid
            最后向该文件写入ID
            echo 1 > /home/hadoop/zookeeper-3.4.5/tmp/myid
        1.3将配置好的zookeeper拷贝到其他节点:
            scp -r /home/hadoop/zookeeper-3.4.5/ slaver1:/home/hadoop/
            scp -r /home/hadoop/zookeeper-3.4.5/ slaver2:/home/hadoop/
            
            注意:修改slaver1、slaver2对应/home/hadoop/zookeeper-3.4.5/tmp/myid内容
            slaver1:
                echo 2 > /home/hadoop/zookeeper-3.4.5/tmp/myid
            slaver2:
                echo 3 > /home/hadoop/zookeeper-3.4.5/tmp/myid

2、上传storm的安装包,解压缩:

[root@master hadoop]# tar -zxvf apache-storm-0.9.2-incubating.tar.gz

3、修改配置文件storm.yaml:

可以创建一个软连接,方便操作storm:[root@master soft]# ln -s apache-storm-0.9.2-incubating storm

修改内容如下所示,下面两个配置均可:

#指定storm使用的zk集群
storm.zookeeper.servers:
- "zk01"
- "zk02"
- "zk03"
#指定storm集群中的nimbus节点所在的服务器
nimbus.host: "storm01"
#指定nimbus启动JVM最大可用内存大小
nimbus.childopts: "-Xmx1024m"
#指定supervisor启动JVM最大可用内存大小
supervisor.childopts: "-Xmx1024m"
#指定supervisor节点上,每个worker启动JVM最大可用内存大小
worker.childopts: "-Xmx768m"
#指定ui启动JVM最大可用内存大小,ui服务一般与nimbus同在一个节点上。
ui.childopts: "-Xmx768m"
#指定supervisor节点上,启动worker时对应的端口号,每个端口对应槽,每个槽位对应一个worker
supervisor.slots.ports:
-
-
-
-

此次配置使用下面的,进行集群安装:

#所使用的zookeeper集群主机
storm.zookeeper.servers:
- "master"
- "slaver1"
- "slaver2" #nimbus所在的主机名
nimbus.host: "master" supervisor.slots.ports
-6701
-6702
-6703
-6704
-6705

然后将master修改好的storm发送到slaver1,slaver2:

[root@master hadoop]# scp -r apache-storm-0.9.2-incubating/ slaver1:/home/hadoop/

[root@master hadoop]# scp -r apache-storm-0.9.2-incubating/ slaver2:/home/hadoop/

4:启动storm集群,首先启动你的Zookeeper集群,然后再启动你的storm集群哈。

启动Zookeeper集群:

然后启动Storm集群:

启动storm
在nimbus主机上,在nimbus.host所属的机器上启动 nimbus服务:
  nohup ./storm nimbus >/dev/null >& & 或者使用命令:nohup ./storm nimbus &
  或者使用命令:./storm nimbus > ../logs/info 2>&1 &  (注释:将启动信息,错误信息,标准信息都打印到如此目录里面)
在nimbus.host所属的机器上启动ui服务:
  nohup ./storm ui >/dev/null >& & 或者使用命令:nohup ./storm ui & 在supervisor主机上,在其它个点击上启动supervisor服务:
  nohup ./storm supervisor >/dev/null >& & 或者使用命令:nohup ./storm supervisor &
  或者使用命令:./storm supervisor > ../logs/info 2>&1 (注释:将启动信息,错误信息,标准信息都打印到如此目录里面)

注意,解释:

1>/dev/null:代表标准输入到这个目录;

2>&1:代表标准输出也到这个目录下面;

&:代表这个是后台运行;

如下启动storm方便观察,最后一行是卡住不动的哦:

查看进程如下所示:

可以启动一下storm的ui查看:

查看一下进程如:

启动ui以后可以在浏览器访问,如:

启动supervisor

[root@slaver1 bin]# ./storm supervisor

然后可以启动剩下的storm:

[root@slaver2 bin]# ./storm supervisor

启动以后可以查看进程jps的启动情况,然后可以去浏览器查看自己http://192.168.3.129:8080/index.html的页面各个启动情况,如supervisor等等。

5:Storm常用操作命令:

:有许多简单且有用的命令可以用来管理拓扑,它们可以提交、杀死、禁用、再平衡拓扑。
提交任务命令格式:storm jar 【jar路径】 【拓扑包名.拓扑类名】 【拓扑名称】
:bin/storm jar examples/storm-starter/storm-starter-topologies-0.9..jar storm.starter.WordCountTopology wordcount
杀死任务命令格式:storm kill 【拓扑名称】 -w (执行kill命令时可以通过-w [等待秒数]指定拓扑停用以后的等待时间)
:storm kill topology-name -w
停用任务命令格式:storm deactivte 【拓扑名称】
:storm deactivte topology-name
:我们能够挂起或停用运行中的拓扑。当停用拓扑时,所有已分发的元组都会得到处理,但是spouts的nextTuple方法不会被调用。销毁一个拓扑,可以使用kill命令。它会以一种安全的方式销毁一个拓扑,首先停用拓扑,在等待拓扑消息的时间段内允许拓扑完成当前的数据流。
启用任务命令格式:storm activate【拓扑名称】
storm activate topology-name
重新部署任务命令格式:storm rebalance 【拓扑名称】
storm rebalance topology-name
再平衡使你重分配集群任务。这是个很强大的命令。比如,你向一个运行中的集群增加了节点。再平衡命令将会停用拓扑,然后在相应超时时间之后重分配工人,并重启拓扑。

注意使用storm运行jar包的时候是没有输入输出路径的,区别于hadoop离线分析:

 [root@master storm]# bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.-incubating.jar storm.starter.WordCountTopology wordcount
Running: /home/hadoop/soft/jdk1..0_65/bin/java -client -Dstorm.options= -Dstorm.home=/home/hadoop/soft/apache-storm-0.9.-incubating -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dstorm.conf.file= -cp /home/hadoop/soft/apache-storm-0.9.-incubating/lib/commons-codec-1.6.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/hiccup-0.3..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/curator-client-2.4..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/clout-1.0..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/json-simple-1.1.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/reflectasm-1.07-shaded.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/httpclient-4.3..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/jgrapht-core-0.9..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/jline-2.11.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/ring-servlet-0.3..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/asm-4.0.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/clojure-1.5..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/joda-time-2.0.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/minlog-1.2.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/logback-classic-1.0..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/kryo-2.21.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/netty-3.6..Final.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/log4j-over-slf4j-1.6..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/commons-lang-2.5.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/tools.logging-0.2..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/commons-logging-1.1..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/compojure-1.1..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/logback-core-1.0..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/math.numeric-tower-0.0..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/ring-devel-0.3..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/servlet-api-2.5.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/commons-fileupload-1.2..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/guava-13.0.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/snakeyaml-1.11.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/jetty-6.1..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/disruptor-2.10..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/clj-time-0.4..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/jetty-util-6.1..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/httpcore-4.3..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/core.incubator-0.1..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/carbonite-1.4..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/commons-io-2.4.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/clj-stacktrace-0.2..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/slf4j-api-1.6..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/curator-framework-2.4..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/netty-3.2..Final.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/ring-core-1.1..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/chill-java-0.3..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/commons-exec-1.1.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/tools.macro-0.1..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/storm-core-0.9.-incubating.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/ring-jetty-adapter-0.3..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/zookeeper-3.4..jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/servlet-api-2.5-.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/objenesis-1.2.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/lib/tools.cli-0.2..jar:examples/storm-starter/storm-starter-topologies-0.9.-incubating.jar:/home/hadoop/soft/apache-storm-0.9.-incubating/conf:/home/hadoop/soft/apache-storm-0.9.-incubating/bin -Dstorm.jar=examples/storm-starter/storm-starter-topologies-0.9.-incubating.jar storm.starter.WordCountTopology wordcount
[main] INFO backtype.storm.StormSubmitter - Jar not uploaded to master yet. Submitting jar...
[main] INFO backtype.storm.StormSubmitter - Uploading topology jar examples/storm-starter/storm-starter-topologies-0.9.-incubating.jar to assigned location: storm-local/nimbus/inbox/stormjar-76fccf41-491e-4d61-8a98-4092c8630161.jar
Start uploading file 'examples/storm-starter/storm-starter-topologies-0.9.2-incubating.jar' to 'storm-local/nimbus/inbox/stormjar-76fccf41-491e-4d61-8a98-4092c8630161.jar' ( bytes)
[==================================================] /
File 'examples/storm-starter/storm-starter-topologies-0.9.2-incubating.jar' uploaded to 'storm-local/nimbus/inbox/stormjar-76fccf41-491e-4d61-8a98-4092c8630161.jar' ( bytes)
[main] INFO backtype.storm.StormSubmitter - Successfully uploaded topology jar to assigned location: storm-local/nimbus/inbox/stormjar-76fccf41-491e-4d61-8a98-4092c8630161.jar
[main] INFO backtype.storm.StormSubmitter - Submitting topology wordcount in distributed mode with conf {"topology.workers":,"topology.debug":true}
[main] INFO backtype.storm.StormSubmitter - Finished submitting topology: wordcount
[root@master storm]#

使用storm自带的统计的demo启动起来以后ui如下所示:

然后点击wordCount以后如下所示,点击下面的按钮是相应的操作:

点击上面的按钮是相应的操作;

出现如下错误,这里贴一下,出错原因是:/storm/conf/storm.yaml的配置nimbus.host: "master"前面多了一个空格,删除空格即可:

 [root@slaver1 bin]# ./storm supervisor
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:)
at backtype.storm.config$loading__4910__auto__.invoke(config.clj:)
at backtype.storm.config__init.load(Unknown Source)
at backtype.storm.config__init.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:)
at clojure.lang.RT.loadClassForName(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.core$load$fn__5018.invoke(core.clj:)
at clojure.core$load.doInvoke(core.clj:)
at clojure.lang.RestFn.invoke(RestFn.java:)
at clojure.core$load_one.invoke(core.clj:)
at clojure.core$load_lib$fn__4967.invoke(core.clj:)
at clojure.core$load_lib.doInvoke(core.clj:)
at clojure.lang.RestFn.applyTo(RestFn.java:)
at clojure.core$apply.invoke(core.clj:)
at clojure.core$load_libs.doInvoke(core.clj:)
at clojure.lang.RestFn.applyTo(RestFn.java:)
at clojure.core$apply.invoke(core.clj:)
at clojure.core$use.doInvoke(core.clj:)
at clojure.lang.RestFn.invoke(RestFn.java:)
at backtype.storm.command.config_value$loading__4910__auto__.invoke(config_value.clj:)
at backtype.storm.command.config_value__init.load(Unknown Source)
at backtype.storm.command.config_value__init.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:)
at clojure.lang.RT.loadClassForName(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.core$load$fn__5018.invoke(core.clj:)
at clojure.core$load.doInvoke(core.clj:)
at clojure.lang.RestFn.invoke(RestFn.java:)
at clojure.lang.Var.invoke(Var.java:)
at backtype.storm.command.config_value.<clinit>(Unknown Source)
Caused by: while parsing a block mapping
in 'reader', line , column :
storm.zookeeper.servers:
^
expected <block end>, but found BlockMappingStart
in 'reader', line , column :
nimbus.host: "master"
^ at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:)
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:)
at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:)
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:)
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:)
at backtype.storm.utils.Utils.findAndReadConfigFile(Utils.java:)
at backtype.storm.utils.Utils.readStormConfig(Utils.java:)
at backtype.storm.utils.Utils.<clinit>(Utils.java:)
... more
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:)
at backtype.storm.config$loading__4910__auto__.invoke(config.clj:)
at backtype.storm.config__init.load(Unknown Source)
at backtype.storm.config__init.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:)
at clojure.lang.RT.loadClassForName(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.core$load$fn__5018.invoke(core.clj:)
at clojure.core$load.doInvoke(core.clj:)
at clojure.lang.RestFn.invoke(RestFn.java:)
at clojure.core$load_one.invoke(core.clj:)
at clojure.core$load_lib$fn__4967.invoke(core.clj:)
at clojure.core$load_lib.doInvoke(core.clj:)
at clojure.lang.RestFn.applyTo(RestFn.java:)
at clojure.core$apply.invoke(core.clj:)
at clojure.core$load_libs.doInvoke(core.clj:)
at clojure.lang.RestFn.applyTo(RestFn.java:)
at clojure.core$apply.invoke(core.clj:)
at clojure.core$use.doInvoke(core.clj:)
at clojure.lang.RestFn.invoke(RestFn.java:)
at backtype.storm.command.config_value$loading__4910__auto__.invoke(config_value.clj:)
at backtype.storm.command.config_value__init.load(Unknown Source)
at backtype.storm.command.config_value__init.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:)
at clojure.lang.RT.loadClassForName(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.core$load$fn__5018.invoke(core.clj:)
at clojure.core$load.doInvoke(core.clj:)
at clojure.lang.RestFn.invoke(RestFn.java:)
at clojure.lang.Var.invoke(Var.java:)
at backtype.storm.command.config_value.<clinit>(Unknown Source)
Caused by: while parsing a block mapping
in 'reader', line , column :
storm.zookeeper.servers:
^
expected <block end>, but found BlockMappingStart
in 'reader', line , column :
nimbus.host: "master"
^ at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:)
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:)
at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:)
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:)
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:)
at backtype.storm.utils.Utils.findAndReadConfigFile(Utils.java:)
at backtype.storm.utils.Utils.readStormConfig(Utils.java:)
at backtype.storm.utils.Utils.<clinit>(Utils.java:)
... more
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:)
at backtype.storm.config$loading__4910__auto__.invoke(config.clj:)
at backtype.storm.config__init.load(Unknown Source)
at backtype.storm.config__init.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:)
at clojure.lang.RT.loadClassForName(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.core$load$fn__5018.invoke(core.clj:)
at clojure.core$load.doInvoke(core.clj:)
at clojure.lang.RestFn.invoke(RestFn.java:)
at clojure.core$load_one.invoke(core.clj:)
at clojure.core$load_lib$fn__4967.invoke(core.clj:)
at clojure.core$load_lib.doInvoke(core.clj:)
at clojure.lang.RestFn.applyTo(RestFn.java:)
at clojure.core$apply.invoke(core.clj:)
at clojure.core$load_libs.doInvoke(core.clj:)
at clojure.lang.RestFn.applyTo(RestFn.java:)
at clojure.core$apply.invoke(core.clj:)
at clojure.core$use.doInvoke(core.clj:)
at clojure.lang.RestFn.invoke(RestFn.java:)
at backtype.storm.command.config_value$loading__4910__auto__.invoke(config_value.clj:)
at backtype.storm.command.config_value__init.load(Unknown Source)
at backtype.storm.command.config_value__init.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:)
at clojure.lang.RT.loadClassForName(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.lang.RT.load(RT.java:)
at clojure.core$load$fn__5018.invoke(core.clj:)
at clojure.core$load.doInvoke(core.clj:)
at clojure.lang.RestFn.invoke(RestFn.java:)
at clojure.lang.Var.invoke(Var.java:)
at backtype.storm.command.config_value.<clinit>(Unknown Source)
Caused by: while parsing a block mapping
in 'reader', line , column :
storm.zookeeper.servers:
^
expected <block end>, but found BlockMappingStart
in 'reader', line , column :
nimbus.host: "master"
^ at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:)
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:)
at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:)
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:)
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:)
at backtype.storm.utils.Utils.findAndReadConfigFile(Utils.java:)
at backtype.storm.utils.Utils.readStormConfig(Utils.java:)
at backtype.storm.utils.Utils.<clinit>(Utils.java:)
... more

开始我用的apache-storm-0.9.2-incubating.tar.gz版本,使用如下官方demo,出现的问题是storm的ui的点击wordcount没有

Spouts (All time),Bolts (All time),Topology Visualization,Topology Configuration等等这些内容;

解决方法,我是换的新版本解决问题:

[root@slaver1 storm]# bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.6.jar storm.starter.WordCountTopology wordcount

6:在Storm的目录的bin目录下面,输入./storm命令可以查看Storm有何命令可使用:

#列出Topology计算拓补
[root@slaver1 bin]# ./storm list
#杀死Topology计算拓补
[root@slaver1 bin]# ./storm kill Topology这个计算拓补的名称

Storm的源码下载以及查看,点击Apache/storm即可进入Github进行源码下载:

7:Idea创建的Maven项目打包,测试,如何操作呢???

最后打成的jar包就是target里面的jar包:

运行如下所示:

 [root@master bin]# storm jar /home/hadoop/data_hadoop/storm-1.0-SNAPSHOT.jar com.bie.WordCountTopologyMain

效果如下所示:

待续......

一脸懵逼学习Storm的搭建--(一个开源的分布式实时计算系统)的更多相关文章

  1. 一脸懵逼学习Storm---(一个开源的分布式实时计算系统)

    Storm的官方网址:http://storm.apache.org/index.html 1:什么是Storm? Storm是一个开源的分布式实时计算系统,可以简单.可靠的处理大量的数据流.被称作“ ...

  2. 一脸懵逼学习HBase的搭建(注意HBase的版本)

    1:Hdfs分布式文件系统存的文件,文件存储. 2:Hbase是存储的数据,海量数据存储,作用是缓存的数据,将缓存的数据满后写入到Hdfs中. 3:hbase集群中的角色: ().一个或者多个主节点, ...

  3. 超详细,新手都能看懂 !使用SpringBoot+Dubbo 搭建一个简单的分布式服务

    来自:JavaGuide Github 地址:https://github.com/Snailclimb/springboot-integration-examples 目录: 使用 SpringBo ...

  4. (第8篇)实时可靠的开源分布式实时计算系统——Storm

    摘要: 在Hadoop生态圈中,针对大数据进行批量计算时,通常需要一个或者多个MapReduce作业来完成,但这种批量计算方式是满足不了对实时性要求高的场景.那Storm是怎么做到的呢? 博主福利 给 ...

  5. 一脸懵逼学习KafKa集群的安装搭建--(一种高吞吐量的分布式发布订阅消息系统)

    kafka的前言知识: :Kafka是什么? 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算.kafka是一个生产-消费模型. Producer:生产者,只负责数 ...

  6. 一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序

    一:序列化概念 序列化(Serialization)是指把结构化对象转化为字节流.反序列化(Deserialization)是序列化的逆过程.即把字节流转回结构化对象.Java序列化(java.io. ...

  7. Golang学习-第二篇 搭建一个简单的Go Web服务器

    序言 由于本人一直从事Web服务器端的程序开发,所以在学习Golang也想从Web这里开始学起,如果对Golang还不太清楚怎么搭建环境的朋友们可以参考我的上一篇文章 Golang的简单介绍及Wind ...

  8. 一脸懵逼学习基于CentOs的Hadoop集群安装与配置

    1:Hadoop分布式计算平台是由Apache软件基金会开发的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS)和MapReduce(Google MapReduce的开源实现)为核心的 ...

  9. SpringCloud学习系列之一 ----- 搭建一个高可用的注册中心(Eureka)

    前言 本篇主要介绍的是SpringCloud相关知识.微服务架构以及搭建一个高可用的服务注册与发现的服务模块(Eureka). SpringCloud介绍 Spring Cloud是在Spring B ...

随机推荐

  1. Linux 文件系统IO性能优化【转】

    转自:https://blog.csdn.net/doitsjz/article/details/50837569 对于LINUX SA来说,服务器性能是需要我们特别关注的,包括CPU.IO.内存等等 ...

  2. CGI,FastCGI,PHP-CGI与PHP-FPM区别详解【转】

    CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上. CGI可以用任何一 ...

  3. pt-table-sync 使用方法【转】

    28. pt-table-sync28.1 pt-table-sync 作用 使用对两个库不一致的数据进行同步,他能够自动发现两个实例间不一致的数据,然后进行sync操作,pt-table-sync无 ...

  4. 题解-UOJ284 快乐游戏鸡

    Problem uoj 题意大意: 一棵树,点权\(w_i\),每次玩家可以在树上行走,一条边需要\(1\)的时间,只能往儿子走.每次游戏需要从\(s\)到\(t\). 玩家有一个总死亡次数,初始为\ ...

  5. NOIP提高组—— 问题求解 与 完善程序

    问题求解1: 甲乙丙丁四人在考虑周末要不要外出郊游. 已知①如果周末下雨,并且乙不去,则甲一定不去:②如果乙去,则丁一定去:③如果丙去,则丁一定不去:④如果丁不去,而且甲不去,则丙一定不去.如果周末丙 ...

  6. c++ 值转换

    1.double,float 四舍五入,保留小数位数. void MainWindow::on_pushButton_clicked() { double number=3.141592; ); qD ...

  7. 通过uwsgi+nginx启动flask的python web程序

    通过uwsgi+nginx启动flask的python web程序 一般我们启动python web程序的时候都是通过python直接启动主文件,测试的时候是可以的,当访问量大的时候就会出问题pyth ...

  8. 7-Links

    Use the <a> element to define a link Use the href attribute to define the link address Use the ...

  9. Git如何克隆远程仓库

    1.首先选择一个合适的地方创建一个空目录 mkdir learngit     2.通过git Init命令把这个目录变成git可以管理的仓库,瞬间git就把仓库建好了 3.将编写的文件放到 lear ...

  10. 51nod--1265 四点共面 (计算几何基础, 点积, 叉积)

    题目: 1265 四点共面 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4 ...