Storm On YARN部署

下载



从github上下载storm-yarn的源码

https://github.com/yahoo/storm-yarn

编译



前提需要安装好JDK和Maven,解压storm-yarn-master.zip,并修改pom.xml中storm和hadoop版本

<properties>
    <storm.version>0.9.0</storm.version>
    <hadoop.version>2.5.0-cdh5.3.0</hadoop.version>
</properties>
  • 1
  • 2
  • 3
  • 4

注:这里一定要注意,通过https://clojars.org/repo/storm这个repository发现storm-core和storm-netty这两个依赖库的版本只发布到了0.9.0.1,所以将storm下降到了0.9.0。

因为我这里使用的是cloudera的Hadoop,所以添加上maven的repository

<repository>
    <id>cdh.repo</id>
    <url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
    <name>Cloudera Repositories</name>
</repository>
  • 1
  • 2
  • 3
  • 4
  • 5

使用maven编译源码

$ mvn clean package -DskipTests
  • 1

部署



解压缩storm.zip,这个storm.zip是在storm-yarn-master/lib目录下,其实这个storm.zip只是一个软连接,指向的是storm-0.9.0-wip21.zip

$ unzip storm.zip
  • 1

配置storm-yarn-master和storm-0.9.0-wip21的bin到系统的环境变量中

# STORM_YARN_HOME
export STORM_YARN_HOME=/home/hadoop/compile/storm-yarn-master
export PATH=$PATH:$STORM_YARN_HOME/bin:$STORM_YARN_HOME/lib/storm-0.9.0-wip21/bin
  • 1
  • 2
  • 3

记得使配置的环境变量生效

$ source /etc/profile
  • 1

添加Storm工程需要的额外Jar包到storm-0.9.0-wip21的lib下,比如MySQL的驱动jar包之类的,重新压缩成storm.zip文件,上传至HDFS的指定目录中(非常重要,集群中通过访问hdfs中的storm.zip获取工作环境) ,进入【/home/hadoop/compile/storm-yarn-master/lib】目录下

$ zip -r storm.zip storm-0.9.0-wip21
$ hdfs dfs -mkdir -p /lib/storm/0.9.0-wip21/
$ hdfs dfs -put storm.zip /lib/storm/0.9.0-wip21/
  • 1
  • 2
  • 3

运行



修改【/opt/modules/storm-yarn-master/lib/storm-0.9.0-wip21/conf】目录下的storm.yaml,这里只修改了zookeeper的地址:

storm.zookeeper.servers:
     - "hadoop-yarn01.dimensoft.com.cn"
     - "hadoop-yarn02.dimensoft.com.cn"
     - "hadoop-yarn03.dimensoft.com.cn"
  • 1
  • 2
  • 3
  • 4

提交storm到yarn

$ storm-yarn launch conf/storm.yaml
  • 1

通过YARN的界面查看,作业执行报错:

15/10/13 16:22:34 ERROR auth.ThriftServer: ThriftServer is being stopped due to: org.apache.thrift7.transport.TTransportException: Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9000.
org.apache.thrift7.transport.TTransportException: Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9000.
    at org.apache.thrift7.transport.TNonblockingServerSocket.<init>(TNonblockingServerSocket.java:89)
    at org.apache.thrift7.transport.TNonblockingServerSocket.<init>(TNonblockingServerSocket.java:68)
    at org.apache.thrift7.transport.TNonblockingServerSocket.<init>(TNonblockingServerSocket.java:61)
    at backtype.storm.security.auth.SimpleTransportPlugin.getServer(SimpleTransportPlugin.java:47)
    at backtype.storm.security.auth.ThriftServer.serve(ThriftServer.java:52)
    at com.yahoo.storm.yarn.MasterServer.main(MasterServer.java:175)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这是因为部署storm-yarn的节点运行了CM Server和CM Server db,导致9000端口号已经被占用了,Storm ApplicationMaster初始化时,将在同一个Container中启动Storm Nimbus和Storm Web UI两个服务,然后根据待启动的Supervisor数目向ResourceManager申请资源,在目前实现中,ApplicationMaster将请求一个节点上所有资源然后启动Supervisor服务,也就是说,当前Supervisor将独占节点而不会与其他服务共享节点资源,这种情况下可避免其他服务对Storm集群的干扰。 除了运行Storm Nimbus和Web UI外,Storm ApplicationMaster还会启动一个Thrift Server以处理来自YARN-Storm Client端的各种请求,在此不再赘述。直接在storm.yaml中添加配置修改thrift端口号。

master.thrift.port: 9002
  • 1

再次提交一遍成功,查看YARN Web UI

直接通过YARN的Web UI查看该job在哪个节点运行,该节点就是Storm集群的UI节点,例如:192.168.100.154节点,那么Storm的UI就是

http://192.168.100.154:7070

可以使用的command

$ storm-yarn [command] –appId [appId] –output [file] [–supervisors [n]]
  • 1

其中,Command为具体命令,具体见下表,参数“-appId”为启动的Storm的应用程序Id,“-supervisors”为需增加的Supervisor服务个数,该参数只对命令“addSupervisors”有效

时间: 2024-12-13 20:59:14

Storm On YARN部署的相关文章

storm on yarn(CDH5) 部署笔记

按照storm on yarn(Apache hadoop)部署好之后,然后修改HADOOP_HOME,hadoopenv.sh中的JAVA_HOME,以及storm-yarn-master中pom.xml的hadoop version 启动顺序依次为: hdfs:start-dfs.sh yarn:start-yarn.sh zookeeper:zkServer.sh start storm nimbus:storm nimbus UI:storm ui   #localhost:8080 s

Storm on Yarn 安装配置

1.背景知识 在不修改Storm任何源代码的情况下,让Storm运行在YARN上,最简单的实现方法是将Storm的各个服务组件(包括Nimbus和Supervisor),作为单独的任务运行在YARN上,当前比较有名的“Storm On YARN”实现是由yahoo!开源的,它基本实现了上述描述的功能,下面具体进行说明:(1) YARN-Storm Client提供了一系列Shell命令供用户控制YARN上的Storm服务,比如构建一个Storm集群命令如下:storm-yarn launch <

storm on yarn安装时 提交到yarn失败 failed

最近在部署storm on yarn ,部署参考文章 http://www.tuicool.com/articles/BFr2Yvhttp://blog.csdn.net/jiushuai/article/details/18729367 在安装完zookeeper,配置好storm 和storm on yarn后,启动zookeeper,其中zookeeper的port为2181,然后通过mvn package 编译工程,发现会出现错误,然后使用mvn packet -DskipTests 重

Storm on Yarn :原理分析+平台搭建

Storm on YARN: Storm on YARN被视为大规模Web应用与传统企业应用之间的桥梁.它将Storm事件处理平台与YARN(Yet Another Resource Negotiator)应用管理框架进行了组合,为此前进行批处理的Hadoop应用提供了低延迟的处理能力. 诞生背景(yahoo): 雅虎公司平台副总裁Bruno Fernandez-Ruiz表示,他们发现Hadoop在处理海量数据时的速度还不够快.Hadoop和MapReduce的速度无法满足用户事件,比如电子邮件

Storm on YARN介绍

Storm On YARN带来的好处 相比于将Storm部署到一个独立的集群中,Storm On YARN带来的好处很多,主要有以下几个: 弹性计算资源: 将Storm运行到YARN上后,Storm可与其他应用程序(比如MapReduce批处理应用程序)共享整个集群中的资源,这样,当Storm负载骤增时,可动态为它增加计算资源,而当负载减小时,可释放部分资源,从而将这些资源暂时分配给负载更重的批处理应用程序. 共享底层存储: Storm可与运行在YARN上的其他框架共享底层的一个HDFS存储系统

Spark on Yarn部署

环境:Linux, 8G 内存,60G 硬盘,Hadoop 2.2.0,Spark 1.0.0, Scala 2.10.3 1. 安装Hadoop Yarn 集群 http://blog.csdn.net/zlcd1988/article/details/36008681 这篇Blog很详细的介绍了如何部署Hadoop Yarn 集群. 2. 安装Scala http://www.scala-sbt.org/download.html 下载 scala-2.10.3.tgz $ tar -zxv

Spark 1.0.0 横空出世 Spark on yarn 部署(hadoop 2.4)

就在昨天,北京时间5月30日20点多.Spark 1.0.0终于发布了:Spark 1.0.0 released 根据官网描述,Spark 1.0.0支持SQL编写:Spark SQL Programming Guide 个人觉得这个功能对Hive的市场的影响很小,但对Shark冲击很大,就像win7和winXP的关系,自相残杀嘛? 这么着急的发布1.x 版是商业行为还是货真价实的体现,让我们拭目以待吧~~~~ 本文是CSDN-撸大湿原创,如要转载请注明出处,谢谢:http://blog.csd

storm单机环境部署

前面说过storm集群的部署,这篇主要介绍storm单机环境部署,其实他们之间很类似,就是将之前配置文件中所有的集群条目改成本机的地址即可,部署之前应该按前面solr和zookeeper单机环境部署那篇文章中,正确设置好zookeeper并且启动zookeeper服务,设置方法和前面完全一致,接下来开始配置storm,首先释放storm并且放到/usr/目录下,命令如下: $ tar -xvzf apache-storm-0.9.6.tar.gz $ mkdir /usr/storm $ mv

Storm 系列(三)Storm 集群部署和配置

Storm 系列(三)Storm 集群部署和配置 本章中主要介绍了 Storm 的部署过程以及相关的配置信息.通过本章内容,帮助读者从零开始搭建一个 Storm 集群.相关的过程和主要的配置选项是 Storm 的运维人员需要重点关注的,对部署和配置选项不感兴趣的读者,可以跳过本章. 在开始 Storm 之旅前,我们先看一下 Storm 部署和配置的相关信息,并提交一个 Topology,了解 Storm 的基本原理.Storm 的部署模式包括单机和集群环境,同时在向 Storm 环境中提交 To