storm on yarn 如何支持 storm 0.9.2

storm on yarn的git地址:https://github.com/yahoo/storm-yarn.git

默认storm on yarn使用的hadoop 和storm的版本: 

0.9.0-wip21

2.1.0-beta

这里我们要做的是让storm on yarn支持 hadoop 2.3 和 storm 0.9.2

一,修改对hadoop 2.3 的支持

首先要让storm on yarn支持hadoop 2.3 非常简单, 就是把pom中的2.1.0-beta改成2.3.0

二,修改对storm 0.9.2的支持

1. 修改storm on yarn的pom文件:

0.9.0-wip21 改成

0.9.2-incubating

添加依赖项 :

            com.googlecode.json-simple

            json-simple

            1.1

       

       

            org.yaml

            snakeyaml

            1.11

       

2. 修改 storm on yarn 源代码

com.yahoo.storm.yarn.Util这个类里面的108行为:

      if (entryName.matches("^storm(-" + stormVersion + ")?/") ||

entryName.matches("^

apache-storm

(-" + stormVersion + ")?/")

) {然后是编译代码了:mvn package -DskipTests, 在编译的过程可能会发生某些依赖包无法现在的情况, 可以单独下载下来, 让后放入本地的maven库中, 比如storm core 0.9.2无法现在,就将storm core 0.9.2的jar放入

~/.m2/repository/storm/storm-core/0.9.2/中, 然后重新编译,直到编译通过为止。


3. 将storm 0.9.2的 包打成zip包,放入hdfs

zip -r storm.zip apache-storm-0.9.2-incubating

hadoop fs -mkdir -p /lib/storm/0.9.2-incubating

hadoop fs -put storm.zip /lib/storm/0.9.2-incubating


4. 设定本地环境变量:

export STORM_YARN_HOME=/Users/caodaoxi/soft/storm/storm-yarn

export STORM_HOME=/Users/caodaoxi/soft/apache-storm-0.9.2-incubatin

这个环境变量是很用用处的,storm on yarn会读取$STORM_HOME中的RELEASE文件以确定当前storm的版本号。


5. 将storm 启动在yarn 集群中

storm-yar launch apache-storm-0.9.2-incubating/conf/storm.yaml

默认storm会在yarn集群的某台机器启动一个masterserver的进程, 该进程的主要接受客户端的命令,并根据命令启动nibus,suppervisor,ui及添加suppervisor节点,实际上就是起了个thriftserver。

另外还会在masterserver所在的那台机器启动nimbus和ui,因为masterserver和nimbus,ui是运行在一个 container中的。 storm on yarn 默认还会在yarn集群的某台机器的 container中启动一个suppervisor节点, 这个数量可以在

storm-yar launch apache-storm-0.9.2-incubating/conf/storm.yaml这个命令中使用的配置文件

storm.yaml中

master.initial-num-supervisors: 1

这个选项指定默认启动的suppervisor个数。另外还要注意的地方是在如果masterserver没有启动,而nimbus, suppervisor,ui都启动成功。那基本上问题出在masterserver启动端口冲突上, 可以通过

master.thrift.port: 9000指定masterserver监听的端口。

6. 查看storm ui

hadoop的resourcemanager的页面上是可以看到storm on yarn的applicationmaster运行在哪台机器上的。

点进去


那说明storm的nimbus和ui都是运行在172.16.70.130这台机器上。访问: 172.16.70.130:7070



你可能感兴趣的:(storm,hadoop)