`
roadrunners
  • 浏览: 76228 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

解决storm集群上的nimbus和supervisor结点无缘无故自动停止的方案

阅读更多

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要使用全路径。

 

2
2
分享到:
评论
1 楼 roadrunners 2015-11-01  
nohup supervise /service/ui &
nohup supervise /service/nimbus &
nohup supervise /service/supervisor &

相关推荐

    Storm集群安装部署步骤【详细版】

    其分别对应的角色如下:主控节点(MasterNode)上运行一个被称为Nimbus的后台程序,它负责在Storm集群内分发代码,分配任务给工作机器,并且负责监控集群运行状态。Nimbus的作用类似于Hadoop中JobTracker的角色。每...

    Storm+Zookeeper 流模式大数据处理部署手册

    Slave 服务器部署 Supervisor 工作节点用于收听工作指派并基于要求运行工作进程,而 Nimbus 和 Supervisor 之间的协调则通过 Zookeeper 系统或者集群实现。 操作系统:统信服务器操作系统 Storm:2.2.0 Zookeeper:...

    Storm运行原理探索

    ApacheStorm的前身是TwitterStorm平台,目前已经归于Apache基金会管辖。...Storm集群采用主从架构方式,主节点是Nimbus,从节点是Supervisor,有关调度相关的信息存储到ZooKeeper集群中,架构如下图所示:N

    漫谈大数据第四期-storm

    Twitter将Storm正式开源了,这是一个分布式的、容错的实时计算系统,它被...有个名为storm-deploy的子项目,可以在AWS上一键部署Storm集群。关于详细的步骤,可以阅读Storm Wiki上的《Setting up a Storm cluster》。

    mykubernetes#hadoop#Storm集群搭建1

    1、查看nimbus的日志信息 2、查看ui运行日志信息 3、查看supervisor运行日志信息 4、查看supervisor上worker运行日志信息 5、

    strom的安装

    Nimbus和Supervisor都能快速失败并恢复,而且它们是无状态的,其元数据存储在ZooKeeper中,这使得系统具有很高的容错性。Nimbus与Supervisor之间的协调工作是通过ZooKeeper来完成的。 Worker由Supervisor负责启动,...

    storm简单介绍、模型图及基本代码

    storm简单介绍、模型图及基本代码,包括nimbus、supervisor、workers、spouts、bolts等

    nimbus-jose-jwt-4.41.1-API文档-中文版.zip

    赠送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; 包含...

    kafka-storm:通过storm打印kafka消息的测试环境和代码

    nimbus :192.168.111.101 上的storm numbus VM,运行supervisor、nimbus 和storm UI worker1 :storm worker VM,在 192.168.111.102 上运行受监督的主管 Storm-code 目录包含一个用于部署和测试的简单风暴拓扑。...

    docker-compose部署zk+kafka+storm集群的实现

    集群部署总览 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-playground:Apache Storm 的个人游乐场

    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-kube:Kubernetes 管理的 StormTrident docker 集群

    您将设置一个服务、一个 Storm 主服务(又名 Nimbus 服务器)和一组 Storm workers(又名主管)。 对于不耐烦的专家,请直接跳到部分。 资料来源 来源可在以下位置免费获得: Docker 镜像 - Docker 可信构建 - ...

    nimbus-sans-l.zip

    nimbus-sans-l.zip nimbus-sans-l.zip nimbus-sans-l.zip nimbus-sans-l.zip

    Storm基础理论与实战

    适合初学者学习,基本理论讲解和实战。Storm的安装,Storm的集群架构(Nimbus,Supervisos,Executor,Worker,zookeeper)

    nimbus-jose-jwt-3.9-API文档-中文版.zip

    赠送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文档...

    storm:冲向Mesos!

    要使用发行版,您首先需要解压缩发行版,将下面列出的配置填写到conf/storm.yaml文件中,然后使用storm-mesos nimbus启动Nimbus。 注:这是没有必要重新包装配送-配置被自动推送至从雨云的奴隶。 已知缺陷与非...

    Nimbus Screenshot and Screencas

    Nimbus Screenshot and Screencas最强大的chrome截屏、录屏、录音插件!

    ApacheStorm内部原理分析

    本文算是个人对Storm应用和学习的一个总结,由于不太懂Clojure语言,所以无法更多地从...Storm集群采用主从架构方式,主节点是Nimbus,从节点是Supervisor,有关调度相关的信息存储到ZooKeeper集群中,架构如下图所示:

    storm-debian-packaging:使用dpkg-buildpackage的Storm Debian包装

    风暴Debian包装 用于分布式实时计算系统的... 提供以下服务的软件包: storm-drpc storm-logviewer storm-nimbus storm-supervisor storm-ui 还有storm-common软件包,它是服务软件包的依赖项。 还有一个storm软件包,

    C/C++实现对STORM运行信息查看及控制的方法

    本文所述程序实例主要实现在后端应用服务器上实时获取STORM集群的运行信息和topology相关的提交和控制。对此,通过对STORM UI和CMD源码的分析,得出可以通过其thrift接口调用实现这些功能。先下载一个thrift库进行...

Global site tag (gtag.js) - Google Analytics