storm集群统一启动和停止shell脚本开发

Hadoop集群

start-all.sh 启动全部进程

stop-all.sh停止

如果用cdh版本+cloudera manager界面化管理的话,直接在界面上点击按钮即可

原理:通果ssh执行远程shell脚本


storm停止进程

Kill -9

shell脚本开头:

#!/bin/bash

./etc/profile

以前就是直接去ui看executor下面是哪个host和port端口,比如slaves:6706,这里的host就是那些分发任务的supervisor

就直接ssh slaves

which storm

cd storm/logs

tail -20 worker-6706.log这样去查看


但是一个作业有可能分发到多台机器上去执行,这样一个个来效率很低。

0.9.0版本开始storm增加了一个很给力的特性logviewer,在早期的版本中,查看worker节点的日志决定worker节点的位置(host/port),典型是通过storm的UI,然后ssh链接到那个主机查看主机上worker的日志文件。

在最新的日志查看机制里,现在可以很容易的去访问一个指定woker节点的日志,只需要在浏览器中的stormUI里点击worker的port就可以了


新的logview进程与supervisor是相对独立的进程,如果要在新的storm里启动它,你只需要在集群的supervisor节点执行如下命令:storm logviewer


另外,0.9以后的storm新版本里面大量使用slf4j的api,而有些storm的依赖库或storm的使用者则依赖于log4j的API,所以现在storm改为依赖于log4j-over-slf4j,它可以在log4j与slf4j之间架起一座桥梁。。


首先我们在stormUI的supervisor summary中的host栏有发现有一个是slave1,一个是master

我们到对应的主机上都启起来

这些机器都nohup挂到后台nohup storm logviewer &

我们还是打开刚才的bolt,在executors一栏我们点击port号就可以进去了。

当然还有一个前提,就是把master和slave1配置到本机的host文件里面,c:\\windows\system\drivers\etc\host

这样我们就能在浏览器中直接看到日志,非常方便


设置无密码访问

1,在每台节点上执行ssh-keygen -t rsa,每台机器都生成自己的密匙

#建立ssh目录,一路敲回车,生成的密匙对id_rsa,id_rsa.pub

默认存储在~/.ssh目录下

chmod 755 .ssh #赋予755权限

cd .ssh

#ls -l

id_rsa id_rsa.pub


2,cat ~/.ssh/id_rsa.pub >> ~/.ssh/autorized_keys

#把公共密钥添加到authorized_keys文件中(此文件最后一定要赋予644权限)

#把slave1中的公式也输入到master的authorized_keys里边,这条命令是在master上运行的。

ssh slave1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

#上面条命令是把其他slave节点的公钥拷贝到master节点中的authorized_keys

#有几个slave节点就需要运行几次命令,slave1是节点的名称

chmod 644 authorized_keys

scp ~/.ssh/authorized_keys slave1:~/.ssh/authorized_keys

#把authorized_keys文件拷贝回每一个节点,slave1是节点名称

在storm/bin目录下面

touch start-all.sh

touch stop-all.sh

touch supervisor-hosts

===

#在master节点上

vim start-supervisor.sh

#!/bin/bash

./etc/profile

nohup storm supervisor &

===

#把这个start-supervisor.sh scp到每个工作节点上

scp ./start-supervisor.sh slave1:/opt/soft/storm-0.9/bin/

===

vim supervisor-hosts //这里面就是存放主机名

master

slave1

===

vim start-all.sh

#!/bin/bash

./etc/profile

#假设每台supervisor上都有start-supervisor.sh这样一条命令,其实这条命令就是storm supervisor的一个封装

bin=/opt/soft/storm-0.9/bin

supervisors=/opt/soft/storm-0.9/bin/supervisor-hosts


#把主节点启起来

nohup storm nimbus &


#读这个文件做一个循环就可以了

#cat $supervisors | while read supervisor #意思就是读这个文件,读出每一行,supervisor代表的是每一行

cat $supervisors | while read supervisor

#do 开始 done结束

do 

echo $supervisor

ssh $supervisor $bin/start-supervisor.sh

done

#ssh slave1 $bin/start-supervisor.sh &

==

ps -ef |grep storm 查看storm进程

停止storm进程只有一种方式,就是kill

所以我们要查看进程号:

ps -ef|grep nimbus| awk '{print $2}'

如果是kill的话,在前面加上kill -9就可以了

kill -9 'ps -ef|grep nimbus| awk '{print $2}' ‘

所以stop-all.sh的脚本应该是这样写

===

vim stop-all.sh

#!/bin/bash

./ect/profile

bin=/opt/soft/storm-0.9/bin

supervisors=/opt/soft/storm-0.9/bin/supervisor-hosts

#把nimbus相关的进程都给他杀掉

kill -9 'ps -ef|grep daemon.nimbus| awk '{print $2}' '

cat $supervisors | while read supervisor

do 

#假设每个节点上都有一个stop-supervisor.sh

echo $supervisor

ssh $supervisor $bin/stop-supervisor.sh & 

done

===

#在storm-0.9的bin目录下,touch stop-supervisor.sh

===

vim stop-supervisor.sh

#!/bin/bash

./etc/profile

kill -9 'ps -ef|grep daemon.supervisor|awk '{print $2}' '

===

然后把stop-supervisor.sh传到其他节点上去

scp ./stop-supervisor.sh slave1:/opt/soft/storm-0.9/bin/



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值