zoukankan      html  css  js  c++  java
  • 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 &
  • 相关阅读:
    构建前端第8篇之---Webstom搭建ES6运行环境
    方法重写
    继承的成员变量的访问特定
    继承的理解
    总结与新的开始
    python 小案例demo07
    python 小案例demo06
    python 小案例demo05
    python 小案例demo05 升级版石头剪刀布
    python 小案例demo04
  • 原文地址:https://www.cnblogs.com/sshcy/p/12187657.html
Copyright © 2011-2022 走看看