storm on yarn 如何支持 storm 0.9.2

30 篇文章 0 订阅

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

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

<storm.version>0.9.0-wip21</storm.version>

<hadoop.version>2.1.0-beta</hadoop.version>

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

一,修改对hadoop 2.3 的支持

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

二,修改对storm 0.9.2的支持

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

<storm.version>0.9.0-wip21</storm.version> 改成 <storm.version>

0.9.2-incubating</storm.version>

添加依赖项 :

<dependency>

            <groupId>com.googlecode.json-simple</groupId>

            <artifactId>json-simple</artifactId>

            <version>1.1</version>

        </dependency>

        <dependency>

            <groupId>org.yaml</groupId>

            <artifactId>snakeyaml</artifactId>

            <version>1.11</version>

        </dependency>

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



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值