storm

作者: 夙夜M | 来源:发表于2017-08-31 19:44 被阅读0次
storm作业

storm启停脚本的编写:

第一步:在master节点创建start-supervisor.sh脚本,然后分发到各个服务器,就可以通过运行该脚本开启supervisor服务

start-supervisor.sh脚本

#!/bin/bash

#使配置的storm环境变量生效

source /home/hadoop/.bashrc

#后台运行supervisor

nohup storm supervisor >/dev/null  2>&1 &

第二步:在master节点创建supervisor-hosts文件,用来存放主机名

supervisor-hosts

hadoop02

hadoop03

hadoop04

第三步:在master节点创建start-all.sh启动所有supervisor

start-all.sh

#!/bin/bash

source /home/hadoop/.bashrc

#重写bin和supervisor目录

bin=/home/hadoop/apps/apache-storm-0.9.7/bin

supervisors=/home/hadoop/apps/apache-storm-0.9.7/bin/supervisor-hosts

#启动主节点

nohup storm nimbus >/dev/null  2>&1 &

#读取supervisor-hosts文件中每一个节点执行start-supervisor.sh脚本启动supervisor服务

#while后面的supervisor用来接收读取到的每一行数据

cat $supervisors | while read supervisor

do

echo $supervisor

ssh $supervisor $bin/start-supervisor.sh

done

第四步:写停止脚本

stop-all.sh

#!/bin/bash

source /home/hadoop/.bashrc

#重写bin和supervisor目录

bin=/home/hadoop/apps/apache-storm-0.9.7/bin

supervisors=/home/hadoop/apps/apache-storm-0.9.7/bin/supervisor-hosts

#把nimbus相关的进程都杀掉

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

#停止所有的supervisor

cat $supervisors | while read supervisor

do

echo $supervisor

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

done

第五步:在各节点的storm的bin目录下编写脚本stop-supervisor.sh

stop-supervisor.sh

#!/bin/bash

source /home/hadoop/.bashrc

#杀死supervisor进程

kill -9 `ps -ef | grep java | grep supervisor | awk '{print $2}'`

第六步:上传所有脚本到storm/bin目录下,并将start-supervisor.sh和stop-supervisor.sh分发到所有storm集群节点:Hadoop02,Hadoop04

第七步:为了防止重名:修改脚本名字为 storm-start-all.sh 和 storm-stop-all.sh

第八步:修改所有脚本运行权限:chmod 755 *.sh

在家目录下运行stop-storm-all.sh脚本

出错:

错误一:-bash: /home/hadoop/apps/apache-storm-0.9.7/bin/start-storm-all.sh: /bin/bash^M: bad interpreter: No such file or directory

[hadoop@hadoop03 bin]$ sh start-storm-all.sh

: No such file or directory /home/hadoop/.bashrc

先注释掉.bashrc命令行,在外部手动开启全局环境变量

错误二:单独运行脚本stop-supervisor.sh  arguments must be process or job IDs0


storm搭建:

官网:storm.apache.org

版本:apache-storm-1.1.1.tar.gz

配置文件storm.yaml的修改 

参考http://storm.apache.org/releases/1.1.1/Setting-up-a-Storm-cluster.html

1)storm.zookeeper.servers: This is a list of the hosts in the Zookeeper cluster for your Storm cluster. It should look something like:

storm.zookeeper.servers:

- "hadoop02"

- "hadoop03"

- "hadoop04"

2)storm.local.dir

storm.local.dir:"/home/hadoop/log/storm"

3)nimbus.seeds:---主节点

nimbus.host: "hadoop03"

4)supervisor.slots.ports:

supervisor.slots.ports:

- 6700

- 6701

- 6702

- 6703

发送安装包

运行storm集群

在主节点运行Nimbus:【Hadoop03】bin/storm nimbus

后台:nohup storm nimbus >/dev/null  2>&1 &

启动后台ui管理界面:nohup storm ui >/dev/null  2>&1 &

在其余节点运行Supervisor:bin/storm supervisor

后台:nohup storm supervisor >/dev/null  2>&1 &

在UI界面查看storm: http://{ui host}:8080.

强制杀死:kill -s -9 进程号

搭建集群中遇到的问题

1、参数supervisor.slots.ports是用来指定一个节点最多可以运行的task的数目,storm中一个节点最多四个task,其中的一个端口号表示一个task任务

2、启动storm之前可以先配置环境变量,然后在家目录下就可以执行命令

nohup storm nimbus >/dev/null  2>&1 &

nohup storm supervisor >/dev/null  2>&1 &

3、要查看storm的ui界面,首先要在后台开启ui管理界面才能访问

nohup storm ui >/dev/null  2>&1 &

4、nimbus和supervisor的节点选取:nimbus选取在Hadoop03(hdfs的active NameNode,纯属主观意愿),supervisor的节点选取在Hadoop02,Hadoop03,Hadoop04

5、nimbus,supervisor是什么?

storm中8大概念:

1)Topologies:拓扑任务:地铁运送乘客的任务,其中包含多个spout和bolt

2)Streams:地铁5号线,运送乘客(数据)

3)Spouts:起始站

4)Bolts:中间站

5)Stream groupings

6)Reliability

7)Tasks

8)Workers


storm架构:

默认情况下,一个supervisor节点最多可以启动4个worker进程,每一个topology默认占用一个worker进程,每个worker进程会启动1个或者多个executor,每个executor启动1个task。

最重要的是并行度/高并发以及线程安全的实现。


相关文章

网友评论

      本文标题:storm

      本文链接:https://www.haomeiwen.com/subject/wylodxtx.html