zoukankan      html  css  js  c++  java
  • Storm—Storm集群搭建

    3.1 环境准备

    3.1.1 集群规划

    hadoop102                                  hadoop103                           hadoop104

    zk                                              zk                                       zk

    storm                                         storm                                  storm

    3.1.2 jar包下载

           (1)官方网址:http://storm.apache.org/

           (2)安装集群步骤:

    http://storm.apache.org/releases/1.1.0/Setting-up-a-Storm-cluster.html

    3.1.3 虚拟机准备

    1)准备3台虚拟机

    2)配置ip地址

      

    3)配置主机名称

    4)3台主机分别关闭防火墙

    [root@hadoop102 atguigu]# chkconfig iptables off

    [root@hadoop103 atguigu]# chkconfig iptables off

    [root@hadoop104 atguigu]# chkconfig iptables off

    3.1.4 安装jdk

          

    3.1.5 安装Zookeeper

    0)集群规划

    在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。

    1)解压安装

    (1)解压zookeeper安装包到/opt/module/目录下

    [atguigu@hadoop102 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/

    (2)在/opt/module/zookeeper-3.4.10/这个目录下创建zkData

           mkdir -p zkData

    (3)重命名/opt/module/zookeeper-3.4.10/conf这个目录下的zoo_sample.cfg为zoo.cfg

           mv zoo_sample.cfg zoo.cfg

    2)配置zoo.cfg文件

           (1)具体配置

           dataDir=/opt/module/zookeeper-3.4.10/zkData

           增加如下配置

           #######################cluster##########################

    server.2=hadoop102:2888:3888

    server.3=hadoop103:2888:3888

    server.4=hadoop104:2888:3888

    (2)配置参数解读

    Server.A=B:C:D。

    A是一个数字,表示这个是第几号服务器;

    B是这个服务器的ip地址;

    C是这个服务器与集群中的Leader服务器交换信息的端口;

    D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

    集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。

    3)集群操作

    (1)在/opt/module/zookeeper-3.4.10/zkData目录下创建一个myid的文件

           touch myid

    添加myid文件,注意一定要在linux里面创建,在notepad++里面很可能乱码

    (2)编辑myid文件

           vi myid

           在文件中添加与server对应的编号:如2

    (3)拷贝配置好的zookeeper到其他机器上

           scp -r zookeeper-3.4.10/ root@hadoop103.atguigu.com:/opt/app/

           scp -r zookeeper-3.4.10/ root@hadoop104.atguigu.com:/opt/app/

           并分别修改myid文件中内容为3、4

    (4)分别启动zookeeper

           [root@hadoop102 zookeeper-3.4.10]# bin/zkServer.sh start

    [root@hadoop103 zookeeper-3.4.10]# bin/zkServer.sh start

    [root@hadoop104 zookeeper-3.4.10]# bin/zkServer.sh start

    (5)查看状态

    [root@hadoop102 zookeeper-3.4.10]# bin/zkServer.sh status

    JMX enabled by default

    Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg

    Mode: follower

    [root@hadoop103 zookeeper-3.4.10]# bin/zkServer.sh status

    JMX enabled by default

    Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg

    Mode: leader

    [root@hadoop104 zookeeper-3.4.5]# bin/zkServer.sh status

    JMX enabled by default

    Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg

    Mode: follower

    3.2 Storm集群部署

    3.2.1 配置集群

    1)拷贝jar包到hadoop102的/opt/software目录下

    2)解压jar包到/opt/module目录下

    [atguigu@hadoop102 software]$ tar -zxvf apache-storm-1.1.0.tar.gz -C /opt/module/

    3)修改解压后的apache-storm-1.1.0.tar.gz文件名称为storm

    [atguigu@hadoop102 module]$ mv apache-storm-1.1.0/ storm

    4)在/opt/module/storm/目录下创建data文件夹

           [atguigu@hadoop102 storm]$ mkdir data

    5)修改配置文件

    [atguigu@hadoop102 conf]$ pwd

    /opt/module/storm/conf

    [atguigu@hadoop102 conf]$ vi storm.yaml

    # 设置Zookeeper的主机名称

    storm.zookeeper.servers:

         - "hadoop102"

         - "hadoop103"

         - "hadoop104"

    # 设置主节点的主机名称

    nimbus.seeds: ["hadoop102"]

    # 设置Storm的数据存储路径

    storm.local.dir: "/opt/module/storm/data"

    # 设置Worker的端口号

    supervisor.slots.ports:

        - 6700

        - 6701

        - 6702

        - 6703

    6)配置环境变量

    [root@hadoop102 storm]# vi /etc/profile

    #STORM_HOME

    export STORM_HOME=/opt/module/storm

    export PATH=$PATH:$STORM_HOME/bin

    [root@hadoop102 storm]# source /etc/profile

    7)分发配置好的Storm安装包

    [atguigu@hadoop102 storm]$ xsync storm/

    8)启动集群

    (1)后台启动nimbus

           [atguigu@hadoop102 storm]$ bin/storm nimbus &

    [atguigu@hadoop103 storm]$ bin/storm nimbus &

    [atguigu@hadoop104 storm]$ bin/storm nimbus &

    (2)后台启动supervisor

           [atguigu@hadoop102 storm]$ bin/storm supervisor &

    [atguigu@hadoop102 storm]$ bin/storm supervisor &

    [atguigu@hadoop102 storm]$ bin/storm supervisor &

    (3)启动Storm ui

    [atguigu@hadoop102 storm]$ bin/storm ui

    9)通过浏览器查看集群状态

    http://hadoop102:8080/index.html

    3.2.2 Storm日志信息查看

    1)查看nimbus的日志信息

    在nimbus的服务器上

    cd /opt/module/storm/logs

    tail -100f /opt/module/storm/logs/nimbus.log

    2)查看ui运行日志信息

    在ui的服务器上,一般和nimbus一个服务器

    cd /opt/module/storm/logs

    tail -100f /opt/module/storm/logs/ui.log

    3)查看supervisor运行日志信息

    在supervisor服务上

    cd /opt/module/storm/logs

    tail -100f /opt/module/storm/logs/supervisor.log

    4)查看supervisor上worker运行日志信息

    在supervisor服务上

    cd /opt/module/storm/logs

    tail -100f /opt/module/storm/logs/worker-6702.log

    5)logviewer,可以在web页面点击相应的端口号即可查看日志

    分别在supervisor节点上执行:

    [atguigu@hadoop102 storm]$ bin/storm logviewer &

    [atguigu@hadoop103 storm]$ bin/storm logviewer &

    [atguigu@hadoop104 storm]$ bin/storm logviewer &

    3.2.3 Storm命令行操作

    1)nimbus:启动nimbus守护进程

           storm nimbus

    2)supervisor:启动supervisor守护进程

           storm supervisor

    3)ui:启动UI守护进程。

           storm ui

    4)list:列出正在运行的拓扑及其状态

           storm list

    5)logviewer:Logviewer提供一个web接口查看Storm日志文件。

           storm logviewer

    6)jar:

    storm jar 【jar路径】 【拓扑包名.拓扑类名】 【拓扑名称】

    7)kill:杀死名为Topology-name的拓扑

           storm kill topology-name [-w wait-time-secs]

           -w:等待多久后杀死拓扑

    8)active:激活指定的拓扑spout。

    storm activate topology-name

    9)deactivate:禁用指定的拓扑Spout。

           storm deactivate topology-name

    10)help:打印一条帮助消息或者可用命令的列表。

           storm help

           storm help <command>

  • 相关阅读:
    [SQL Server]分页功能的实现
    [Others]每个文件夹都具有的特殊文件夹
    [ASP.NET]使页面的大小适合打印尺寸
    [SQL Server]树形结构的创建
    [ASP.NET]获取用户控件对象的引用
    [SQL Server]关于15517号错误的一点想法
    [SQL Server]创建自定义聚合函数值得注意的问题
    Java开源BI商业智能工具
    电子商务网站搜索架构方案
    产品经理如何培养对市场的敏感度和洞察力?
  • 原文地址:https://www.cnblogs.com/tesla-turing/p/13698960.html
Copyright © 2011-2022 走看看