美文网首页
Storm学习笔记三:全分布式搭建

Storm学习笔记三:全分布式搭建

作者: 开发者连小超 | 来源:发表于2019-12-13 16:19 被阅读0次

    服务器准备

    Storm不依赖于HDFS,全分布式使用虚拟机模板克隆出三台新的虚拟机(node05/node06/node07)进行搭建试验。Linux系统在VM下的安装克隆可参照之前的Linux学习系列文章。

    Storm需要依赖Java和python环境,我的克隆机里python已有,但还没有安装jdk,所以需要先安装一下(安装JDK教程在【Hadoop学习笔记一:伪分布式搭建(Hadoop1.x)】里有)。


    Storm全分布式服务器规划.png

    安装Zookeeper

    node05/node06/node07安装Zookeeper,先在node05上操作
    1.解压

    tar xf zookeeper-3.4.6.tar.gz -C /opt/sxt/
    

    2.配置修改

    cd zookeeper-3.4.6/conf
    mv zoo_sample.cfg zoo.cfg
    vi zoo.cfg
    
    #修改(ZK的文档扔到这个目录下)
    dataDir=/var/sxt/zk
    #文档后追加配置
    #zk集群前提条件:1.一开始告诉集群数量 2.把每台服务器编制serverid
    server.1=node05:2888:3888
    server.2=node06:2888:3888
    server.3=node07:2888:3888
    #2888 是主从节点之间的通信端口
    #3888 是当发生主挂断之后,选举机制采用的通信端口
    

    3.Zookeeper分发到node06/node07

    scp -r zookeeper-3.4.6/ node06:`pwd`
    scp -r zookeeper-3.4.6/ node07:`pwd`
    

    4.每个节点创建数据存放路径,并在此路径下新增myid文件

    #每个节点新增路径
    mkdir -p /var/sxt/zk
    #每个节点添加id文件
    echo 1 > /var/sxt/zk/myid
    echo 2 > /var/sxt/zk/myid
    echo 3 > /var/sxt/zk/myid
    

    5.配置环境变量

    vi + /etc/profile
    
    export ZOOKEEPER_HOME=/opt/sxt/zookeeper-3.4.6
    PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin
    #配置完分发给node03/node04 后每个节点 source一下
    

    6.Zookeeper启动

    #三台同时执行
    zkServer.sh start
    #查看是否启动 (是否有QuorumPeerMain进程)
    jps
    #查看集群状态
    zkServer.sh status
    

    注意:zookeeper默认id最大的作为主,其他为从。但一个一个启动(三台服务器至少启动两台,集群才启动)先启动的两个ID大的是主,后启动的第三个还是从。若是五台集群,先启动的前三个个ID大的是主。

    Strom解压配置

    1.首先在node05上执行解压安装

    tar xf apache-storm-0.10.0.tar.gz -C /opt/sxt/
    

    2.配置storm.yaml

    [root@node05 conf] vi /opt/sxt/apache-storm-0.10.0/conf/storm.yaml
    #配置 信息在哪个zookeeper之上、主节点是哪个、提交任务的磁盘目录
    storm.zookeeper.servers:
         - "node05"
         - "node06"
         - "node07"
    nimbus.host: "node05" 
    storm.local.dir: "/var/sxt/storm"
    
    #四个worker进程的通讯端口,不配置的话默认也是这四个(单一的supervisor上会跑四个worker)
    supervisor.slots.ports:
        - 6700
        - 6701
        - 6702
        - 6703
    

    3.在storm目录中创建logs目录

    [root@node05 storm] mkdir logs
    

    4.分发给node06/node07,并配置其环境变量

    [root@node05 sxt] scp -r apache-storm-0.10.0/ node06:`pwd`
    [root@node05 sxt] scp -r apache-storm-0.10.0/ node07:`pwd`
    

    5.启动ZooKeeper集群

    [root@node07 ~] zkServer.sh start
    [root@node07 ~] zkServer.sh status
    

    6.node05上启动Nimbus

    [root@node05 storm] storm nimbus >> ./logs/nimbus.out 2>&1 &
    [root@node05 storm] storm ui>> ./logs/ui.out 2>&1 &
    

    7.node06/node07上启动Supervisor

    #每启动一个supervisor就有了4个slots(当然node1也可以启动supervisor)
    [root@node05 storm] storm supervisor>> ./logs/supervisor.out 2>&1 &
    

    浏览器查看 http://node05:8080/

    8.提交任务到Storm集群当中运行

    $ ./bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.4.jar storm.starter.WordCountTopology test
    

    相关文章

      网友评论

          本文标题:Storm学习笔记三:全分布式搭建

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