`
ghost_face
  • 浏览: 52981 次
社区版块
存档分类
最新评论

Storm on yarn安装步骤

阅读更多

参考:

[1] http://hi.baidu.com/clockfly/item/f977cad1239bd94fddf9beea

[2] http://blog.csdn.net/jiushuai/article/details/18729367

1.     已有的环境

 

a.     安装有HDFS文件系统
b.     安装有YARN,且YARN服务已经开启
c.      JAVA_HOME

 注:本次安装实验是基于hadoop2.2.0的,jdk1.7,因此a,b,c全部满足。

 

2.     Storm on Yarn的安装准备

 

a.     从GitHub上下载Storm on Yarn
wget https://github.com/yahoo/storm-yarn/archive/master.zip
b.      Unzip master
unzip master
c.      Edit pom.xml,修改Hadoop的版本号,改成对应的版本号

 

 

3.     Maven安装(使用Maven来build工程)

 

wget http://mirror.symnds.com/software/Apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
tar –zxvf apache-maven-3.1.1-bin.tar.gz

 4.     配置Storm的工作环境

  

a.     解压缩storm.zip
unzip storm.zip
b.     添加storm-0.9.0-wip21和storm-yarn-master的bin到Path环境变量
export PATH=${PATH}:${STORM_HOME}/storm-0.9.0-wip21/bin
export PATH=${PATH}:${STORM_HOME}/storm-yarn-master/bin
c.      添加Storm工程需要的额外Jar包到storm-0.9.0-wip21的lib下,重新压缩成storm.zip文件,上传至HDFS的指定目录中(非常重要,集群中通过访问hdfs中的storm.zip获取工作环境)
zip –r storm.zip storm-0.9.0-wip21
hadoop fs –put storm.zip /lib/storm/0.9.0-wip21/

 5.     安装并运行Storm

  

a.     使用maven来build工程
cd storm-yarn-master
mvn package
b.     修改storm.yaml文件
vi storm-0.9.0-wip21/conf/storm.yaml
注:只修改了zookeeper的servers信息,其余没有改动。

c.      提交运行storm on yarn,并得到一个ApplicationId
storm-yarn launch storm.yaml
注:因为storm是作为一个yarn程序运行在集群上的,所以会有一个AppId,如下图所示



d.     存储storm.yaml文件到.storm,这样使用storm命令提交jobs时,会找到该文件
storm-yarn getStormConfig -appId application_1381089732797_0025  -output ~/.storm/storm.yaml
e.     通过以下命令得到Nimbus host
cat ~/.storm/storm.yaml | grep nimbus.host

 6.     测试Storm

 

a.     提交Topology
storm jar lib/storm-starter-0.0.1-SNAPSHOT.jar storm.starter.WordCountTopology WordCountTopology -c nimbus.host=<your nimbus host>
b.     监控Topology
查看Storm ui,地址是:http://<your nimbus host>:7070
c.      关闭Topology
storm kill [Topology_name]
d.     关闭Storm on yarn集群
storm-yarn shutdown –appId [applicationId]

 

  • 大小: 5.6 KB
  • 大小: 26.2 KB
  • 大小: 21.1 KB
0
0
分享到:
评论
9 楼 ghost_face 2015-02-25  
fireinwind 写道
查看Storm ui,地址是:http://<your nimbus host>:7070

work , total slots == 0 ,是因为没有用命令加入supervisor么?



在初次启动时,默认会启动一个Supervisor。如果没有,可能是启动失败,也可能是supervisor挂掉了,看下storm日志
8 楼 fireinwind 2015-02-05  
查看Storm ui,地址是:http://<your nimbus host>:7070

work , total slots == 0 ,是因为没有用命令加入supervisor么?


7 楼 chenling96 2014-02-21  
首先谢谢你的答复,我的storm on yarn可以正常跑起来了,但也存在下面这个问题:启动storm-yarn launch后,nimbus在centos3(ip:192.168.1.198)跑起来了,但当我使用storm-yarn getStromConfig来得到最新的配置文件时,里面查到的nimbus.host却是127.0.0.1,而不是192.168.1.198,再storm kill WordCountTopology时就报错了。我把~/.storm/storm.yaml的nimbus.host手动改为192.168.1.198后再执行storm kill WordCountTopology就可以了。有点不明白的是storm-yarn getStormConfig更新的配置文件,nimbus.host为什么老是127.0.0.1,是我在那里配置错了吗?还是在那里少了点配置?
下面附上代码:
[hadoop@centos1 ~]$ jps
2474 NameNode
2765 ResourceManager
4569 Jps
2631 SecondaryNameNode
3468 QuorumPeerMain
[hadoop@centos1 ~]$ storm-yarn getStormConfig -appId application_1392993766268_0005 -output .storm/storm.yaml
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/hadoop-2.2.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/storm-0.9.0-wip21/lib/logback-classic-1.0.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
14/02/21 12:52:22 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
14/02/21 12:52:23 INFO client.RMProxy: Connecting to ResourceManager at /192.168.1.196:9080
14/02/21 12:52:23 INFO yarn.StormOnYarn: application report for application_1392993766268_0005 :centos3:9000
14/02/21 12:52:23 INFO yarn.StormOnYarn: Attaching to centos3:9000 to talk to app master application_1392993766268_0005
14/02/21 12:52:23 INFO yarn.StormMasterCommand: storm.yaml downloaded into .storm/storm.yaml
[hadoop@centos1 ~]$ cat .storm/storm.yaml |grep nimbus.host
nimbus.host: 127.0.0.1
[hadoop@centos1 ~]$ ssh centos3
Last login: Fri Feb 21 11:43:24 2014 from centos1
[hadoop@centos3 ~]$ jps
4211 MasterServer
4390 Jps
1615 DataNode
4225 core
4226 nimbus
1705 NodeManager
[hadoop@centos3 ~]$
6 楼 ghost_face 2014-02-21  
storm on yarn运行的时候(就是storm-yarn launch strom.yaml),会在集群中随意找台机器作为nimbus。每次重启storm,nimbus的地址可能会变,所以通过storm-yarn getStromConfig来得到最新的配置文件,里面可以查到nimbus.host
5 楼 chenling96 2014-02-20  
a.提交Topology 
storm jar lib/storm-starter-0.0.1-SNAPSHOT.jar storm.starter.WordCountTopology WordCountTopology -c nimbus.host=<your nimbus host>
在这边的nimbus.host应该是多少?上面的storm.yaml可以设置的吗?可以怎么查到自身的nimbus.host呢?
4 楼 chenling96 2014-02-20  
@ghost_face:d.存储storm.yaml文件到.storm...请问下,这个.storm文件夹是建在那个目录下的呢???
我的是建立在当前用户下的,为/home/hadoop/.storm/,当我运行storm-yarn launch storm.yaml,已经成功运行了,但运行storm-yarn getStormConfig -appId application_1392923655685_0001 -output ~/.storm/storm.yaml时,报下面的错误:[hadoop@centos1 ~]$ storm-yarn getStormConfig -appId application_1392923655685_0001 -output ~/.storm/storm.yaml
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/hadoop-2.2.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/storm-0.9.0-wip21/lib/logback-classic-1.0.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
14/02/20 14:28:07 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
14/02/20 14:28:08 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
14/02/20 14:28:18 INFO yarn.StormOnYarn: No host/port returned for Application Master application_1392923655685_0001
Exception in thread "main" java.lang.NullPointerException
        at com.yahoo.storm.yarn.StormMasterCommand.downloadStormYaml(StormMasterCommand.java:180)
        at com.yahoo.storm.yarn.StormMasterCommand.process(StormMasterCommand.java:91)
        at com.yahoo.storm.yarn.Client.execute(Client.java:142)
        at com.yahoo.storm.yarn.Client.main(Client.java:148)
[hadoop@centos1 ~]$
这个是什么问题呢?该怎么解决呢?可以答复下吗,谢谢
3 楼 chenling96 2014-02-19  
@ghost_face:请问有没有zookeeper安装的相关说明,找了挺多个例子,都没有成功
麻烦了,谢谢!!!
2 楼 ghost_face 2014-02-19  
不需要每台机器都安装zookeeper,能够使用zookeeper服务就行了
1 楼 chenling96 2014-02-18  
@ghost_face:您好!我有个问题想请教下你,在yarn上集成storm,是不是要在每台机器上都安装zookeeper呢,可以绕过zookeeper集群吗?谢谢!!!

相关推荐

Global site tag (gtag.js) - Google Analytics