• Storm集群搭建


    Storm集群依赖Zookeeper, 所以先搭建zookeeper集群, zookeeper集群搭建: http://www.cnblogs.com/CoolJayson/p/7764531.html

    以下开始搭建Storm集群:

    1.将apache-storm-0.9.3.tar.gz拷贝到/usr/local/src/目录下, 并解压

    2.进入到./conf/目录下, 修改storm.yaml文件, 增加如下配置:

    其中storm.zookeeper.servers配置了zookeeper集群; nimbus.host配置了主节点(master node), supervisor.slots.ports配置了从节点(woker node)的端口号.

    3.将apache-storm-0.9.3文件拷贝到每个从节点.

     

    4.先启动zookeeper集群(要在每个节点都将zookeeper启动, 如何启动见zookeeper集群搭建)

    5.在master节点写脚本将storm集群启动(否则要在每个节点分别启动storm)

    启动storm集群脚本: start-storm.sh

     1 #!/bin/bash
     2 
     3 #脚本使用默认是集群配置好免密码登录
     4 #让你配置的环境生效,我的是~/.bashrc 根据个人配置有的是/etc/profile
     5 source ~/.bashrc
     6 #storm的安装路径
     7 STORM_HOME=/usr/local/src/apache-storm-0.9.3
     8 
     9 #先在主节点上启动nimbus和ui进程
    10 echo "start nimbus, ui and logviewer in master"
    11 $STORM_HOME/bin/storm nimbus > /dev/null 2>&1 &
    12 $STORM_HOME/bin/storm ui > /dev/null 2>&1 &
    13 $STORM_HOME/bin/storm logviewer > /dev/null 2>&1 &
    14 
    15 #在从节点上启动logviewer和supervisor
    16 # 注意在storm安装路径conf文件夹下默认是没有supervisors这个文件 ,这里是为了便于管理自己创建(名字自己定义)
    17 # 在supervisors文件里放的是 supervisor的hostname 有几个supervisor节点 就写几个 一个主机名占一行
    18 
    19 #把supervisors文件里的主机名赋值给SUPERSIORS
    20 SUPERVISORS=$(cat $STORM_HOME/conf/supervisors)
    21 
    22 # 循环遍历SUPERVISORS
    23 for supervisor in $SUPERVISORS
    24 do
    25         echo "start supervisor and logviewer in $supervisor"
    26         #先ssh 登录到supervisor节点 然后让配置的环境生效,在执行需要启动的进程 nohup 是后台运行 >/dev/null 2>&1 & 
    27 ssh $supervisor "source ~/.bashrc && nohup $STORM_HOME/bin/storm supervisor > /dev/null 2>&1 &" > /dev/null 2>&1 & 28 ssh $supervisor "source ~/.bashrc && nohup $STORM_HOME/bin/storm logviewer > /dev/null 2>&1 &" > /dev/null 2>&1 & 29 done

    关闭storm集群脚本: stop-storm.sh

     1 #!/bin/bash
     2 
     3 source ~/.bashrc
     4 # storm 安装路径
     5 STORM_HOME=/usr/local/src/apache-storm-0.9.3
     6 
     7 #先在主节点上停止nimbus,ui和logviewer进程
     8 echo "stop nimbus and logviewer in master"
     9 # 注意最外面的引号是反引号
    10 kill -9 `ps -ef | grep daemon.nimbus | awk '{print $2}' | head -n 1`
    11 kill -9 `ps -ef | grep ui.core | awk '{print $2}' | head -n 1`
    12 kill -9 `ps -ef | grep daemon.logviewer | awk '{print $2}' | head -n 1`
    13 
    14 #在从节点上停止logviewer和supervisor
    15 SUPERVISORS=$(cat $STORM_HOME/conf/supervisors)
    16 for supervisor in $SUPERVISORS
    17 do
    18         echo "stop supervisor and logviewer in $supervisor"
    19         ssh $supervisor kill -9 `ssh $supervisor ps -ef | grep daemon.supervisor | awk '{print $2}' | head -n 1`
    20         ssh $supervisor kill -9 `ssh $supervisor ps -ef | grep daemon.logviewer | awk '{print $2}' | head -n 1`
    21 done

    conf目录下supervisors内容:

    6.启动后每个节点的进程如下:

        

    7.在浏览器打开Storm UI地址: http://master:8080/index.html, 可以看到storm集群的信息

    //==========正式内容结束, 以下为补充内容================

    如果分别在主节点和从节点开启和关闭脚本的话, 脚本内容如下: 

     

  • 相关阅读:
    django 项目运行时static静态文件不能加载问题处理
    django 项目运行时media静态文件不能加载问题处理
    django 的用户验证及登录状态保持
    django 2.0 中URL的include方法使用分析
    auth.User.groups: (fields.E304)
    web理论知识--HTML结构及标签
    数据库相关--mysql中的单表查询
    python基础下的数据结构与算法之链表
    python基础下的数据结构与算法之顺序表
    Nginx 日志分析命令
  • 原文地址:https://www.cnblogs.com/CoolJayson/p/7932342.html
Copyright © 2020-2023  润新知