storm与daemontools安装详解

Storm是什么 

1 Storm 是一个分布式实时大数据处理系统,可以帮助我们方便地处理海量数据,具有高可靠、高容错、高扩展的特点。
2 
3 Storm 是流式框架,有很高的数据吞吐能力,Strom 本身是无状态的,通过 ZooKeeper 管理分布式集群环境和集群状态。
4 
5 Strom 的安装和使用都很简单,但功能强大,可以并行地对实时数据流进行各种处理。

 

Storm与zookeeper之间关系图

 

nimbus

1 nimbus进程的主要职责是管理、协调和监控集群上运行的topology(包括topology的发布、任务指派、时间处理时重新指派任务等)。
2 
3 topology的发布,需要将预先打成jar的topology和配置信息提交到nimbus服务器,当nimbus接收到topology压缩包,会将jar包分发到足够数量的supervisor节点上。当supervisor节点接收到topology压缩文件,nimbus就会指派task(bolt、spout实例)到每个supervisor并且发送信号指示supervisor生成足够的worker来执行指定task。
4 
5 nimbus通过Zookeeper记录所有supervisor节点的状态和分配给它们的task。如果nimbus发现某个supervisor没有上报心跳或已经不可达,它将会把分配给故障supervisor的task重新分配给其他节点。
6 
7 严格来讲,nimbus不会出现单点故障。这个特性是因为nimbus进程不参与topology(拓扑)的数据处理过程,仅仅是管理topology的初始化、任务分发和进行监控,所以如果nimbus在topology运行时停止,不会影响topology的运行。

 

supervisor

1 supervisor进程等待nimbus分配任务后生成并监控worker(jvm进程)执行任务。supervisor与worker运行在不同的jvm上,如果由supervisor启动的某个worker因为错误异常退出(或被kill掉),supervisor会尝试重新生成新的worker进程。

 

ui

1 ui进程是为Stom集群提供一个web的gui监控界面,对正在运行的nimbus、supervisor、topology进行展示,对正在运行的topology有一定管理功能,提供其统计信息,对监控Storm集群的运转和topology的功能有很大的帮助。ui进程属于Storm的可选服务,可以自由选择启动或不启动。

 

安装storm

1 wget http://apache.communilink.net/storm/apache-storm-2.0.0/apache-storm-2.0.0.zip
2 
3 unzip apache-storm-2.0.0.zip 
4 
5 mv apache-storm-2.0.0 /apps/
6 
7 cd /apps/
8 
9 mv apache-storm-2.0.0 storm2.0

配置storm.yaml文件

 1 storm.zookeeper.servers:
 2     - "10.10.1.144"
 3     - "10.10.1.145"
 4     - "10.10.1.146"
 5 storm.zookeeper.port: 2181
 6 storm.zookeeper.root: "/storm"
 7 
 8 # storm 数据存储路径
 9 storm.local.dir: "/data/storm"
10 
11 storm.health.check.dir: "healthchecks"
12 storm.health.check.timeout.ms: 5000
13 
14 # nimbus 主机 IP
15 nimbus.seeds: ["10.10.1.131"]
16 # suppervisor可以作为worker进程启动的端口,表明该Supervisor最多可启动8个worker进程 17 supervisor.slots.ports: 18 - 6700 19 - 6701 20 - 6702 21 - 6703 22 - 6704 23 - 6705 24 - 6706 25 - 6707

 

daemontools安装

 1 wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
 2 
 3 mkdir /apps/daemontools
 4 
 5 tar xf daemontools-0.76.tar.gz -C /apps/daemontools
 6 
 7 cd /apps/daemontools/amin/daemontools-0.76/
 8 //修改参数,不改会报错,在src下的conf-cc文件的第一行最后添加如下代码即可 -include /usr/include/errno.h
 9 
10 //修改完参数后编译执行
11 ./package/install 

nimbus节点配置守护进程

 1 cd /apps/daemontools
 2 
 3 mkdir storm/{nimbus,ui,drpc} -p
 4 
 5 ...]$ cat /apps/daemontools/storm/drpc/run
 6 #!/bin/sh
 7 exec 2>&1
 8 exec /apps/storm2.0/bin/storm drpc
 9 
10 ...]$ cat /apps/daemontools/storm/ui/run
11 #!/bin/sh
12 exec 2>&1
13 exec /apps/storm2.0/bin/storm ui
14 
15 ...]$ cat /apps/daemontools/storm/nimbus/run
16 #!/bin/sh
17 exec 2>&1
18 exec /apps/storm2.0/bin/storm nimbus
19 
20 ...]$ chmod 755 /apps/daemontools/storm/{nimbus,ui,drpc}/run

# 启动方法:

nohup supervise /apps/daemontools/storm/nimbus >> /data/logs/storm/nimbus.log &
nohup supervise /apps/daemontools/storm/ui >> /data/logs/storm/ui.log &
nohup supervise /apps/daemontools/storm/drpc >> /data/logs/storm/drpc.log &

supervisor节点配置守护进程

 1 cd /apps/daemontools
 2 
 3 mkdir storm/supervisor -p
 4 
 5 ...]$ cat /apps/daemontools/storm/supervisor/run
 6 #!/bin/sh
 7 exec 2>&1
 8 exec /apps/storm2.0/bin/storm supervisor
 9 
10 # 启动storm supervisor
11 nohup supervise /apps/daemontools/storm/supervisor >> /data/logs/storm/supervisor.log &
posted @ 2020-01-13 15:51  ︻◣_蝸犇り~  阅读(222)  评论(0编辑  收藏  举报