1.下载 apache-storm-1.1.1.tar.gz

http://www.apache.org/dyn/closer.lua/storm/apache-storm-1.1.1/apache-storm-1.1.1.tar.gz

2.上传到soft目录下,解压,修改名称为storm

tar zxf apache-storm-1.1.1.tar.gz
mv apache-storm-1.1.1 storm
export STORM_HOME=/opt/beh/soft/storm
export PATH=$STORM_HOME/bin:$PATH

3.cdh1、cdh2和cdh3部署storm集群,cdh1作为Nimbus节点,cdh2、cdh3作为surpervisor节点。
zookeeper集群要先部署好

4.配置storm,vi storm/conf/storm.yaml
配置完成分发storm到每个节点

## These MUST be filled in for a storm configurationstorm.zookeeper.servers: - "cdh1"
      - "cdh2"
      - "cdh3"
    storm.local.dir: "/data/storm"  #storm.zookeeper.port: 2181nimbus.seeds: ["cdh1"]ui.port: 8080(默认)supervisor.slots.ports: - 6700
    - 6701
    - 6702
    - 6703
1.storm.zookeeper.servers:这是Storm集群的Zookeeper集群中的主机列表。
2.如果您的Zookeeper集群使用的端口与默认端口(2181)不同,您应该设置storm.zookeeper.port。
3.storm.local.dir:Nimbus和Supervisor守护进程需要本地磁盘上的一个目录来存储少量的状态(比如jar,confs等等)。 您应该在每台机器上创建该目录(mkdir /home/storm),给予适当的权限,然后使用此配置填写目录位置。 例如:
storm.local.dir: "/home/storm"
4.nimbus.seeds:工作节点(worker nodes)需要知道哪些机器是主机的候选者,以便下载拓扑结构的jar和conf。 例如:
nimbus.seeds: ["192.168.10.101"]
5.supervisor.slots.ports:对于每个工作机器,使用此配置可以配置在该机器上运行的worker数量。 每个worker使用单个端口接收消息,并且此设置定义哪些端口是打开使用的。 如果你在这里定义了五个端口,那么Storm将会分配多达五个worker在这台机器上运行。 如果你定义了三个端口,Storm最多只能运行三个端口。 默认情况下,此设置被配置为在端口6700,6701,6702和6703上运行4个worker。例如:
supervisor.slots.ports:- 6700- 6701- 6702- 6703
6.Storm提供了一种机制,管理员可以通过配置该机制管理定期运行的脚本,以确定节点是否健康。 管理员可以通过在位于storm.health.check.dir中的脚本中执行任何选择检查来确定节点是否处于健康状态。如果脚本检测到节点处于不健康的状态,则必须以字符串ERROR打印一行到标准输出。 supervisor将定期在健康检查目录中运行脚本并检查输出。 如果脚本的输出包含字符串ERROR,如上所述,supervisor将关闭所有workers并退出。
如果supervisor在监督下运行,则可以调用“/ bin / storm node-health-check”来确定是否应该启动supervisor或者该节点是否不健康。
运行状况检查目录位置可以配置为:
storm.health.check.dir: "healthchecks"
脚本必须具有执行权限。 允许任何给定的健康检查脚本在被标记为失败之前运行的时间由于超时而失败,可以使用以下方法进行配置:
storm.health.check.timeout.ms: 5000
ok,保存退出,配置就算完成了。配置外部库和环境变量(可选)
如果您需要外部库或自定义插件的支持,可以将这些jar放入extlib /和extlib-daemon /目录中。 请注意,extlib-daemon /目录存储了仅由守护进程(Nimbus,Supervisor,DRPC,UI,Logviewer)使用的jar,例如HDFS和定制调度库。 因此,用户可以配置两个环境变量STORM_EXT_CLASSPATH和STORM_EXT_CLASSPATH_DAEMON,以包含外部类路径和仅守护进程的外部类路径。
启动守护进程

最后一步是启动所有的Storm守护进程。 在监督下运行这些守护进程是非常重要的。 Storm是一个快速失败(fail-fast)系统,意味着只要遇到意外错误,进程就会停止。 Storm的设计可以在任何时候安全停止,并在重新启动过程时正确恢复。 这就是为什么Storm在进程中不保持状态 - 如果Nimbus或Supervisors重新启动,运行的拓扑结构不受影响。 以下是如何运行Storm守护进程:

Nimbus:在Storm主控节点上运行命令bin/storm nimbus &,启动Nimbus后台程序,并放到后台执行。
Supervisor:在Storm各个工作节点上运行命令bin/storm supervisor &。启动Supervisor后台程序,并放到后台执行。 Supervisor守护进程负责启动和停止该机器上的工作进程。
UI: 在Storm主控节点上运行命令bin/storm ui &,启动UI后台程序,并放到后台执行。运行Storm UI(一个您可以从浏览器访问的网站,该网站可以对集群和拓扑进行诊断)。 可以通过浏览您的Web浏览器访问UI:http:// {ui host}:8080。
通过命令jps可以看到相应的进程已经启动起来了。

storm常用命令

通过执行命令storm就可以列出storm的所有命令列表了。
jar命令负责把拓扑提交到集群,并执行它,通过StormSubmitter执行主类。
storm jar path-to-topology-jar class-with-the-main arg1 arg2 argN
path-to-topology-jar是拓扑jar文件的全路径,它包含拓扑代码和依赖的库。 class-with-the-main是包含main方法的类,这个类将由StormSubmitter执行,其余的参数作为main方法的参数。停用拓扑:
storm deactivte topology-name
启动一个停用的拓扑:
storm activate topology-name
杀死一个拓扑:
storm kill topology-name
再平衡拓扑(再平衡使你重分配集群任务。这是个很强大的命令。比如,你向一个运行中的集群增加了节点。再平衡命令将会停用拓扑,然后在相应超时时间之后重分配工人,并重启拓扑。):
storm rebalance topology-name

expected ‘’, but found BlockMappingStart in ‘reader’, line 13, column 1:nimbus.host:
具体错误信息如下:

/bin/java
Exception in thread "main" java.lang.ExceptionInInitializerErrorat backtype.storm.command.config_value.main(config_value.java:40)
Caused by: expected '<document start>', but found BlockMappingStartin 'reader', line 13, column 1:nimbus.host: "10.10.10.10"^at shade.storm.org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentStart.produce(ParserImpl.java:225)at shade.storm.org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)at shade.storm.org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143)at shade.storm.org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:108)at shade.storm.org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120)at shade.storm.org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481)at shade.storm.org.yaml.snakeyaml.Yaml.load(Yaml.java:424)at com.alibaba.jstorm.utils.LoadConf.findAndReadYaml(LoadConf.java:58)at backtype.storm.utils.Utils.readStormConfig(Utils.java:457)at backtype.storm.utils.Utils.<clinit>(Utils.java:112)... 1 more
Failed to get config java.library.path
None
16:51:02,904 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
16:51:02,904 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
16:51:02,905 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/usr/local/jstorm-2.2.1/conf/logback.xml]
16:51:03,050 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
16:51:03,112 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
16:51:03,129 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [console]
16:51:03,179 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
16:51:03,304 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
16:51:03,309 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [file]
16:51:03,319 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@13:19 - no applicable action for [Encoding], current ElementPath  is [[configuration][appender][Encoding]]
16:51:03,368 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - No compression will be used
16:51:03,371 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy - Will use the pattern /home/kafka-jstorm-logs/kafka-jstorm-%d{yyyy-MM-dd}.log for the active file
16:51:03,377 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@7006c658 - The date pattern is 'yyyy-MM-dd' from file name pattern '/home/kafka-jstorm-logs/kafka-jstorm-%d{yyyy-MM-dd}.log'.
16:51:03,377 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@7006c658 - Roll-over at midnight.
16:51:03,384 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@7006c658 - Setting initial period to Thu Apr 27 15:50:57 CST 2017
16:51:03,399 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[file] - This appender no longer admits a layout as a sub-component, set an encoder instead.
16:51:03,399 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[file] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
16:51:03,399 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[file] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
16:51:03,402 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[file] - Active log file name: /home/kafka-jstorm-logs/kafka-jstorm.log
16:51:03,402 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[file] - File property is set to [/home/kafka-jstorm-logs/kafka-jstorm.log]
16:51:03,404 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - ROOT level set to ERROR
16:51:03,404 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - ROOT level set to WARN
16:51:03,404 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [file] to Logger[ROOT]
16:51:03,405 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [console] to Logger[ROOT]
16:51:03,405 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
16:51:03,407 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@34033bd0 - Registering current configuration as safe fallback point
cannot concatenate 'str' and 'NoneType' objects
Syntax: [jstorm jar topology-jar-path class ...]Runs the main method of class with the specified arguments.The jstorm jars and configs in $JSTORM_CONF_DIR/storm.yaml are put on the classpath.The process is configured so that StormSubmitter(https://github.com/alibaba/jstorm/wiki/JStorm-Chinese-Documentation)will upload the jar at topology-jar-path when the topology is submitted.http://www.cnblogs.com/blackze/p/5906476.html

解决方案:

查看报警信息标识是在nimbus的n上,经试验原来是这几个配置名称前需要加空格。即:空格nimbus.host: "10.10.10.10"
空格storm.zookeeper.port: 2181
空格storm.local.dir: "date/storm-2.2.1/data"
空格supervisor.slots.ports:

大家配置storm.yaml时一定要注意了。

storm1.1.1安装相关推荐

  1. 在线实时大数据平台Storm版本兼容的问题

    部署了storm1.0.1最新版,但原来生产的程序是storm0.8.2版本并在该版本环境中运行,直接将程序放到1.0.1环境中storm jar运行失败. 重构程序,引入storm-core-1.0 ...

  2. Bookmarks(三)

    Bookmarks 书签栏 tooltips提示效果,支持点击与经过显示,位置和效果可以自定义 - CSDN博客 疯狂的小萝卜头 - 博客园 [Kettle从零开始]第九弹之Kettle定时任务介绍 ...

  3. kafka和storm集群的环境安装

    前言 storm和kafka集群安装是没有必然联系的,我将这两个写在一起,是因为他们都是由zookeeper进行管理的,也都依赖于JDK的环境,为了不重复再写一遍配置,所以我将这两个写在一起.若只需一 ...

  4. linux环境下nacos的安装+启动,阿里云服务器安装nacos

    nacos安装+启动(linux环境): 基础:安装java环境 官网下载压缩包:如 nacos-server-1.2.1.tar.gz 放在自定义目录下 # 解压 tar -xvf nacos-se ...

  5. Alibaba Cloud Linux 2.1903 LTS 64位服务器yum源下载404,Alibaba Cloud Linux 2实例中使用docker-ce、epel等YUM源安装软件失败

    [Alibaba Cloud Linux 2.1903 LTS 64位]服务器yum源下载404 failure: repodata/repomd.xml from docker-ce-stable: ...

  6. Linux下docker安装配置oracle,oracle创建用户并远程连接,实测可用!

    最近在给同学弄毕业设计的数据库,因为oracle在个人电脑上极不稳定,所以他的电脑数据库崩溃了,这时候我就在docker上为他拉了一个oracle,解决了问题. docker的安装共有以下几步,实测没 ...

  7. 在docker上安装部署tomcat项目 超简单,拿来主义

    在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...

  8. docker一步安装mysql,docker的魅力就在于此

    正常来说,使用docker安装东西的步骤是serach它有没有,然后pull它 这里其实只要一步(如果你没有安装过.没有端口占用等问题的话!!) $ docker run -d -p 3306:330 ...

  9. Linux下tomcat的安装与卸载以及配置(超简单)

    无敌简单的几步 1.安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置 2.卸载 rm - ...

最新文章

  1. sql查询,nolock写还是不写,这是一个问题
  2. 懒人 IDEA 插件推荐: EasyCode 一键帮你生成所需代码~
  3. js返回上一页并刷新代码整理
  4. c++ 调用cmd命令行函数 可隐藏黑框 四种方法总结
  5. centos 安装jdk_Centos7下安装一个或多个tomcat7完整
  6. JQuery 动画卷页 -- 返回顶部 动画特效(兼容Chrome)
  7. 新的Java缓存标准(javax.cache)
  8. 浅析“高斯白噪声”,“泊松噪声”,“椒盐噪声”的区别
  9. 安装CUDA时出现黑屏的现象解决办法
  10. tiny4412 串口驱动分析五 --- LDD3上TTY驱动程序源码
  11. paip.提升用户体验---业务SQL注入漏洞的分析与解决
  12. 什么是接口测试,接口测试的目的,如何进行接口测试
  13. RateLimiter限流
  14. tiff格式转为jpg,tiff转jpg方法
  15. Android 自定义视频录制终极解决方案(翻转问题)
  16. 深度xp系统安装教程
  17. bmp怎样转成jpg,bmp格式换jpg
  18. PTB中的Screen函数
  19. java中如何在键盘中输入一串以逗号隔开数字然后存入数组中,并输出。
  20. Ubuntu22.04 安装禅道

热门文章

  1. 美分零钱_如何以89美分的价格获取20GB的Amazon Cloud Storage
  2. MATLAB 将 n 美分转换成 25、10、5 和 1 美分的硬币总共有多少种转换方法?编写一个函数,传入参数 n,输出转换的种类
  3. Eclipse 安装教程(图文注释)及JDK安装配置环境变量
  4. python使用selenium爬取boos,100%爬取成功,绕过cookie
  5. 【字符串处理】UVALive - 6917 Decoding Baby Boos
  6. S2-MLP: Spatial-Shift MLP Architecture for Vision
  7. 1-1MySql复习
  8. 目标检测 YOLOv5 自定义网络结构
  9. 字符串分割成数组元素和去掉重复元素
  10. 弹簧、扫描、随路径扭转