参考:
[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]