`
roadrunners
  • 浏览: 77026 次
  • 性别: 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集群搭建

    一旦完成这些步骤,就可以启动Storm集群的各个后台进程,包括Nimbus和Supervisor,开始运行实时流处理应用。 Storm集群的搭建是构建实时处理系统的第一步,后续还需要对Topologies(拓扑结构)进行定义,以实现特定...

    storm集群启动与停止脚本共2页.pdf.zip

    【标题】"storm集群启动与停止脚本共2页.pdf.zip" 提供的是一份关于storm集群管理的文档,主要涵盖了如何启动和停止storm集群的关键步骤。Storm是Apache开源的一个分布式实时计算系统,它能够处理大规模的数据流并...

    Storm集群环境搭建

    在本文中,我们将搭建一个3节点的Storm集群,每个节点上都部署了Supervisor和LogViewer服务。此外,还需要在每个节点上部署ZooKeeper服务,以便于集群之间的协调管理。 二、前置条件 Storm的运行依赖于Java 7+和...

    storm集群部署和配置过程详解

    Storm集群的部署和配置是构建实时大数据处理系统的关键步骤,本文将详细讲解这一过程。Storm是一个分布式实时计算系统,能够处理大规模数据流,确保每个事件都得到正确的处理。以下是搭建Storm集群的详细步骤: 1. ...

    storma集群安装手册(包含zookeeper集群安装和storm集群安装)

    本文档主要介绍如何在多台服务器上部署一个完整的Storm集群,其中包括JDK安装、Zookeeper集群安装以及Storm集群的搭建。整个过程分为三个主要部分:Java环境(JDK)的安装、Zookeeper集群的配置以及Storm集群的具体...

    storm集群的搭建-java示例代码.zip

    5. **启动Storm**:在Nimbus节点上启动`bin/storm nimbus`,在其他Supervisor节点上启动`bin/storm supervisor`。这些命令会启动Storm的守护进程。 6. **提交拓扑**:编写Java代码实现Spout和Bolt,构建Storm拓扑。...

    storm集群部署文档

    ### Storm集群部署知识点 #### 一、Storm集群简介 Apache Storm 是一款开源的分布式实时计算系统,它提供了简单而强大的API来处理无限的数据流。Storm的设计使其能够支持各种类型的流处理应用,包括实时分析、在线...

    storm部署(包括所有依赖rpm包、集群搭建详解)

    首先,Storm部署前需要准备的依赖RPM包主要包括Java开发环境(JDK)、Zookeeper、Nimbus、Supervisor和UI等组件。JDK是运行Storm的基础,确保安装了JDK 8或更高版本。Zookeeper是一个分布式协调服务,用于管理Storm...

    Storm在Linux集群上运行.docx

    在集群上运行时,Storm会自动将topology分配到可用的工作节点上,并根据拓扑定义进行数据处理。为了监控topology的状态,可以使用Storm UI,它是一个基于Web的界面,可通过集群的Nimbus节点的指定端口访问(默认为...

    从零开始搭建Storm集群

    Storm的核心组件包括Nimbus(协调者)、Supervisor(管理者)以及Worker(工作者)。本文将详细介绍如何在Linux环境下从零开始搭建一个Storm集群。 #### 二、准备阶段 在开始搭建之前,确保具备以下条件: 1. **...

    基于Storm的分布式流计算集群详细配置

    4. **启动服务**:分别在ZooKeeper、Nimbus和Supervisor节点上启动ZooKeeper、Nimbus和Supervisor服务。 ### 四、集群监控与管理 - 使用`storm ui`命令可以打开Storm Web UI,监控集群状态,包括拓扑、worker、...

    storm集群搭建Java客户端测试代码.zip

    - **启动Storm服务**:依次启动Zookeeper、Nimbus、Supervisor和UI服务,确保所有服务正常运行。 2. **Java客户端测试代码**: - **storm-starter**:通常,Storm的Java客户端测试代码会基于storm-starter项目,...

    Storm源码走读笔记

    Storm集群由Nimbus、Supervisor、ZooKeeper等组件组成,Nimbus负责资源的分配和任务调度,Supervisor负责执行任务,ZooKeeper负责集群的状态维护。 本文档是关于Storm源码的详细走读笔记,主要分析了Storm的启动...

    使用Storm实时处理交通大数据(数据源:kafka,集群管理:zookeeper).zip

    3. 部署和配置Storm集群,包括nimbus和supervisor节点。 4. 开发Storm拓扑,定义spouts和bolts,实现数据处理逻辑。 5. 将拓扑提交到Storm集群,进行实时处理。 6. 实时监控系统性能,根据需要调整参数或优化代码。 ...

    storm0.9.0 linux安装包

    工作者在节点上运行,负责执行拓扑中的任务,而Nimbus和Supervisor是Storm集群的管理组件,Nimbus负责任务调度,Supervisor则在各个节点上管理工作者进程。 安装Storm 0.9.0在Linux上通常涉及以下几个步骤: 1. **...

    storm企业应用 实战 运维和调优

    Storm集群是由一个主节点(Nimbus)和多个工作节点(Supervisor)构成的。Nimbus负责任务分配,而Supervisor负责执行任务。Storm的处理单元是Topology,它包含了Spout和Bolt。Spout负责数据的输入,而Bolt负责处理...

    实时Hadoop实战篇:基于Storm实时路况分析和实时路径推荐系统方案.doc

    Storm UI 是一个用于查看和管理 Storm 集群的 Web 界面,Nimbus 是 Storm 集群的控制节点,负责管理和协调整个 Storm 集群的操作。Supervisor 是 Storm 集群的工作节点,负责执行 Storm 任务。ZooKeeper 是一个...

    storm安装软件包

    总的来说,Apache Storm是一个强大的实时计算框架,对于需要实时处理大量数据的应用场景,如实时广告定向、社交网络分析、物联网设备数据处理等,提供了高效且灵活的解决方案。通过深入理解和实践,我们可以掌握如何...

    storm集群安装

    - 启动Storm Supervisor和Nimbus等组件。 - **监控与调试**: - 使用Storm UI进行集群状态监控。 - 调整配置以优化性能或解决故障。 #### 六、总结 通过上述步骤,我们可以完成Storm集群的基础安装与配置工作。...

    apache-storm-1.1.2.tar.gz

    1. **bin**:这个目录包含了一系列可执行脚本,用于启动、停止Storm服务,如`storm nimbus`(Nimbus主节点)、`storm supervisor`(Supervisor节点)和`storm ui`(Web UI)等。 2. **conf**:配置文件存放在这里,...

Global site tag (gtag.js) - Google Analytics