storm在生产上跑得很欢快,最近突然遇到一个问题,不知道storm是什么原因,无缘无故的自动停止了。查看日志没有任何的报错信息,包括警告信息都没有,反正就是无缘无故的shut down了。问题分析,初步我们判断应该是系统资源不足导致的,但这只是推测,因为storm集群的这些server都没有做监控,只有后面加上监控才能验证是否是因为资源问题引起的。
好吧!既然遇到问题咱们就解决问题吧!首先网上一搜,还是有很多遇到跟我们一样的问题,但是没有找到一个很好的解决方案。去storm官网一搜索,反复找到了解决办法,“Launches the nimbus daemon. This command should be run under supervision with a tool like daemontools or monit. See Setting up a Storm cluster for more information.”官网上推荐我们把nimbus和supervisor运行在daemontools or monit下面。于是我就点进了daemontools。先在测试机器上安装测试了一下,进程被kill掉,自动就会重启,完全可以满足我们当前遇到的问题。
1、daemontools安装
这里是官网的安装文档:http://cr.yp.to/daemontools/install.html
下面是我们的安装步骤:
mkdir -p /package
cd /package/
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
等待下载安装包,然后解压编译。
gunzip daemontools-0.76.tar.gz
tar -xpf daemontools-0.76.tar
cd admin/daemontools-0.76/
./package/install
直接编译报错了,错误信息:
./compile wait_pid.c ./makelib unix.a alloc.o alloc_re.o buffer.o buffer_0.o buffer_1.o \ buffer_2.o buffer_get.o buffer_put.o buffer_read.o buffer_write.o \ coe.o env.o error.o error_str.o fd_copy.o fd_move.o fifo.o lock_ex.o \ lock_exnb.o ndelay_off.o ndelay_on.o open_append.o open_read.o \ open_trunc.o open_write.o openreadclose.o pathexec_env.o \ pathexec_run.o prot.o readclose.o seek_set.o sgetopt.o sig.o \ sig_block.o sig_catch.o sig_pause.o stralloc_cat.o stralloc_catb.o \ stralloc_cats.o stralloc_eady.o stralloc_opyb.o stralloc_opys.o \ stralloc_pend.o strerr_die.o strerr_sys.o subgetopt.o wait_nohang.o \ wait_pid.o ./load envdir unix.a byte.a /usr/bin/ld: errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o /lib64/libc.so.6: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [envdir] Error 1
然后修改src目录下的error.h库文件。
vim src/error.h
找到“extern int errno;” 替换成“#include <errno.h>”,然后再编译。
./package/install
到此,提示下面信息表示成功安装。
Copying commands into ./command... Creating symlink daemontools -> daemontools-0.76... Making command links in /command... Making compatibility links in /usr/local/bin... Creating /service... Adding svscanboot to inittab... init should start svscan now.
2、storm ui、nimbus、supervisor配置
首先进入service目录。
cd /service/
storm ui的配置:
mkdir ui
cd ui/
vim run
run脚本如下:
#!/bin/bash exec 2>&1 exec /opt/app/apache-storm-0.9.5/bin/storm ui
chmod 755 run
nimbus的配置:
cd /service/
mkdir nimbus
cd nimbus/
vim run
run脚本如下:
#!/bin/bash exec 2>&1 exec /opt/app/apache-storm-0.9.5/bin/storm nimbus
chmod 755 run
supervisor的配置:
cd /service/
mkdir supervisor
cd supervisor/
vim run
run脚本如下:
#!/bin/bash exec 2>&1 exec /opt/app/apache-storm-0.9.5/bin/storm supervisor
chmod 755 run
到此一切安装和配置均OK,下面启动吧!
supervise /service/ui &
supervise /service/nimbus &
supervise /service/supervisor &
大功告成,以后这些服务就会自动重启了。当然肯定有同学会问,哪不是以后这些服务就杀不死了嘛!如果不想让某个服务自动重启,用命令ps -ef|grep supervise查看,把相应的进程给kill掉服务就不会自动重启了。
如果希望Storm随操作系统的启动而启动的话,在/etc/rc.local脚本里面添加如下配置:
export JAVA_HOME=/opt/app/jdk1.8.0_92
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
/usr/local/bin/supervise /service/ui
/usr/local/bin/supervise /service/nimbus
/usr/local/bin/supervise /service/supervisor
注:首先要指定JDK的环境变量,supervise要使用全路径。
相关推荐
其分别对应的角色如下:主控节点(MasterNode)上运行一个被称为Nimbus的后台程序,它负责在Storm集群内分发代码,分配任务给工作机器,并且负责监控集群运行状态。Nimbus的作用类似于Hadoop中JobTracker的角色。每...
Slave 服务器部署 Supervisor 工作节点用于收听工作指派并基于要求运行工作进程,而 Nimbus 和 Supervisor 之间的协调则通过 Zookeeper 系统或者集群实现。 操作系统:统信服务器操作系统 Storm:2.2.0 Zookeeper:...
ApacheStorm的前身是TwitterStorm平台,目前已经归于Apache基金会管辖。...Storm集群采用主从架构方式,主节点是Nimbus,从节点是Supervisor,有关调度相关的信息存储到ZooKeeper集群中,架构如下图所示:N
Twitter将Storm正式开源了,这是一个分布式的、容错的实时计算系统,它被...有个名为storm-deploy的子项目,可以在AWS上一键部署Storm集群。关于详细的步骤,可以阅读Storm Wiki上的《Setting up a Storm cluster》。
1、查看nimbus的日志信息 2、查看ui运行日志信息 3、查看supervisor运行日志信息 4、查看supervisor上worker运行日志信息 5、
Nimbus和Supervisor都能快速失败并恢复,而且它们是无状态的,其元数据存储在ZooKeeper中,这使得系统具有很高的容错性。Nimbus与Supervisor之间的协调工作是通过ZooKeeper来完成的。 Worker由Supervisor负责启动,...
storm简单介绍、模型图及基本代码,包括nimbus、supervisor、workers、spouts、bolts等
赠送jar包:nimbus-jose-jwt-4.41.1.jar; 赠送原API文档:nimbus-jose-jwt-4.41.1-javadoc.jar; 赠送源代码:nimbus-jose-jwt-4.41.1-sources.jar; 赠送Maven依赖信息文件:nimbus-jose-jwt-4.41.1.pom; 包含...
nimbus :192.168.111.101 上的storm numbus VM,运行supervisor、nimbus 和storm UI worker1 :storm worker VM,在 192.168.111.102 上运行受监督的主管 Storm-code 目录包含一个用于部署和测试的简单风暴拓扑。...
集群部署总览 172.22.12.20 172.22.12.21 172.22.12.22 172.22.12.23 172.22.12.24 zoo1:2181 zoo2:2182 zoo3:2183 zkui:9090 (admin/manager) kafka1:9092 kafka2:9092 kafka3:9092 kafdrop:9000 ...
storm-0.9.3 stormsudo ln -s /opt/storm/bin/storm /usr/local/bin将您的 Storm 集群信息存储在一个文件中: 你应该创建一个文件 ~/.storm/storm.yaml nimbus.host: "123.45.678.890"运行拓扑: 在集群上运行 storm jar hello-world-1.0-SNAPS
您将设置一个服务、一个 Storm 主服务(又名 Nimbus 服务器)和一组 Storm workers(又名主管)。 对于不耐烦的专家,请直接跳到部分。 资料来源 来源可在以下位置免费获得: Docker 镜像 - Docker 可信构建 - ...
nimbus-sans-l.zip nimbus-sans-l.zip nimbus-sans-l.zip nimbus-sans-l.zip
适合初学者学习,基本理论讲解和实战。Storm的安装,Storm的集群架构(Nimbus,Supervisos,Executor,Worker,zookeeper)
赠送jar包:nimbus-jose-jwt-3.9.jar; 赠送原API文档:nimbus-jose-jwt-3.9-javadoc.jar; 赠送源代码:nimbus-jose-jwt-3.9-sources.jar; 赠送Maven依赖信息文件:nimbus-jose-jwt-3.9.pom; 包含翻译后的API文档...
要使用发行版,您首先需要解压缩发行版,将下面列出的配置填写到conf/storm.yaml文件中,然后使用storm-mesos nimbus启动Nimbus。 注:这是没有必要重新包装配送-配置被自动推送至从雨云的奴隶。 已知缺陷与非...
Nimbus Screenshot and Screencas最强大的chrome截屏、录屏、录音插件!
本文算是个人对Storm应用和学习的一个总结,由于不太懂Clojure语言,所以无法更多地从...Storm集群采用主从架构方式,主节点是Nimbus,从节点是Supervisor,有关调度相关的信息存储到ZooKeeper集群中,架构如下图所示:
风暴Debian包装 用于分布式实时计算系统的... 提供以下服务的软件包: storm-drpc storm-logviewer storm-nimbus storm-supervisor storm-ui 还有storm-common软件包,它是服务软件包的依赖项。 还有一个storm软件包,
本文所述程序实例主要实现在后端应用服务器上实时获取STORM集群的运行信息和topology相关的提交和控制。对此,通过对STORM UI和CMD源码的分析,得出可以通过其thrift接口调用实现这些功能。先下载一个thrift库进行...