zoukankan      html  css  js  c++  java
  • Storm集群部署

    Storm集群部署
        Storm的环境分为生产环境和开发环境两种。
            开发环境是提供Storm开发人员进行Storm程序开发与测试的环境。Storm的硬件环境只需要一台普通PC主机(该主机上需具备JDK、Eclipse等)即可。在开发环境上开发Storm应用称为本地
        模式。
            生产环境则是Storm的集群环境。需要3台或更多的主机作为节点,安装Linux操作系统,同时需要安装JDK、ZooKeeper、ZeroMQ、JZMQ、Storm和Python(我这里是系统自带的)即可。在生
        产环境上运行Storm应用称为远程模式。

    用到的软件
        apache-storm-0.9.3.tar.gz
        dk-6u45-linux-i586.bin
        jzmq-master.zip
        zeromq-2.1.7.tar.gz
        zookeeper-3.4.5.tar.gz

    安装需要的依赖库
        在32位CentOS上需要如下rpm包
            autoconf-2.63-5.1.el6.noarch
            automake-1.11.1-4.el6.noarch
            gcc-c++-4.4.7-3.el6.i686
            libcom_err-devel-1.41.12-14.el6.i686
            libstdc++-devel-4.4.7-3.el6.i686
            libtool-2.2.6-15.5.el6.i686
            libuuid-2.17.2-12.9.el6.i686
            libuuid-devel-2.17.2-12.9.el6.i686
            uuid-1.6.1-10.el6.i686
            uuid-devel-1.6.1-10.el6.i686
        
        在64位CentOS上需要如下rpm包
            autoconf-2.63-5.1.el6.noarch
            automake-1.11.1-4.el6.noarch
            e2fsprogs-devel-1.41.12-14.el6.x86_64
            gcc-c++-4.4.7-3.el6.x86_64
            libcom_err-devel-1.41.12-14.el6.x86_64
            libstdc++-devel-4.4.7-3.el6.x86_64
            libtool-2.2.6-15.5.el6.x86_64
            libuuid-2.17.2-12.9.el6.x86_64
            libuuid-devel-2.17.2-12.9.el6.x86_64
            uuid-1.6.1-10.el6.x86_64
            uuid-devel-1.6.1-10.el6.x86_64



    HostName            IP                Soft                        Process
    storm1              192.168.1.61      Storm,Zookeeper             QuorumPeerMain、Nimbus、Supervisor、Core、Drcp、Logviewer
    storm2              192.168.1.62      Storm,Zookeeper             QuorumPeerMain、Supervisor、Logviewer
    storm3              192.168.1.63      Storm,Zookeeper             QuorumPeerMain、Supervisor、Logviewer

    ##修改storm1的主机名
    vi /etc/sysconfig /network
    HOSTNAME=h1
    esc,shift+zz

    ##修改storm1的主机映射文件
    vi /etc/hosts
    192.168.1.61 storm1
    192.168.1.62 storm2
    192.168.1.63 storm3
    esc,shift+zz

    ##关闭storm1的防火墙
    service iptables stop
    chkconfig iptables off
    chkconfig --list | grep iptables

    ##在storm1上安装32位Jdk-6u45
    cd /usr/java/
    chmod u+x jdk-6u45-linux-i586.bin
    ./jdk-6u45-linux-i586.bin
    mv jdk1.6.0_45/ java

    ##在storm1上配置JAVA_HOME
    vi /etc/profile
    export JAVA_HOME=/usr/java
    export PATH=.:$JAVA_HOME/bin:$PATH
    esc,shift+zz
    source /etc/profile

    ##验证storm1上的JDK安装是否成功
    java -version

    ##复制storm1虚拟机两个,分别改名为storm2和storm3。将storm2主机IP改为192.168.1.42,将storm3主机IP改为192.168.1.43

    ##配置SSH免密码登陆(使用rsa非对称加密方式)
    [root@storm1 .ssh]# ssh-keygen -t rsa三次回车
    [root@storm2 .ssh]# ssh-keygen -t rsa三次回车
    [root@storm3 .ssh]# ssh-keygen -t rsa三次回车
    [root@storm1 .ssh]# ssh-copy-id root@h1,输入yes,输入密码
    [root@storm2 .ssh]# ssh-copy-id root@h1,输入yes,输入密码
    [root@storm3 .ssh]# ssh-copy-id root@h1,输入yes,输入密码
    [root@storm1 .ssh]# scp authorized_keys root@storm2:/root/.ssh/,输入yes,输入密码
    [root@storm1 .ssh]# scp authorized_keys root@storm3:/root/.ssh/,输入yes,输入密码

    ##验证SSH免密码登陆
    各个机器相互登陆到其他机器,首次会提示输入密码
    ssh storm1
    ssh n ...

    ##在storm1上配置安装zookeeper-3.4.5.tar.gz到/cloud/
    tar -zxvf zookeeper-3.4.5.tar.gz -C /cloud
    mv zookeeper-3.4.5.tar.gz zk

    ##在storm1上配置Zookeeper
    mv /cloud/zk/conf/zoo_examp.cfg /cloud/zk/conf/zoo.cfg
    vi /cloud/zk/conf/zoo.cfg
    dataDir=/cloud/zk/data
    server.1=storm1:2888:3888
    server.2=storm2:2888:3888
    server.3=storm3:2888:3888
    esc
    shift+zz
    在zk下创建data文件夹,该文件夹里有个myid,值为1

    ##在storm1上配置ZOOKEEPER_HOME
    vi /etc/profile
    export ZOOKEEPER_HOME=/usr/java
    export PATH=.:ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH
    esc,shift+zz
    source /etc/profile

    ##将storm1上的zk复制到storm2和storm3上
    scp -r /cloud/zk root@storm2:/cloud/    ###/cloud/zk/data/myid的值改为2
    scp -r /cloud/zk root@storm3:/cloud/    ###/cloud/zk/data/myid的值改为3

    ##将storm1上的/etc/profile复制到storm2和storm3上
    scp /etc/profile root@storm2:/etc/
    scp /etc/profile root@storm3:/etc/

    ##安装apache-storm-0.9.3.tar.gz到/cloud/
    tar -zxvf apache-storm-0.9.3.tar.gz -C /cloud
    mv apache-storm-0.9.3 storm
    vi /cloud/storm/conf/storm.yaml
    /cloud/storm/conf/storm.yaml配置如下
    storm.zookeeper.servers:
    - "storm1"
    - "storm2"
    - "storm3"
    nimbus.host: "storm1"
    drpc.servers:
    - "storm1"
    esc
    shift+zz

    ##将storm1上配置好的storm复制到storm2和storm3上
    scp -r /cloud/storm root@storm2:/cloud/
    scp -r /cloud/storm root@storm3:/cloud/

    ##启动storm集群
    在storm1上:
        nohup storm nimbus >/dev/null 2>&1 &
        nohup storm supervisor >/dev/null 2>&1 &
        nohup storm ui >/dev/null 2>&1 &
        nohup storm drpc >/dev/null 2>&1 &
        nohup storm logviewer >/dev/null 2>&1 &
    在storm2上:
        nohup storm supervisor >/dev/null 2>&1 &
        nohup storm logviewer >/dev/null 2>&1 &
    在storm3上:
        nohup storm supervisor >/dev/null 2>&1 &
        nohup storm logviewer >/dev/null 2>&1 &

    ##验证集群启动状态
    1:
    [root@storm1 soft]# for i in storm1 storm2 storm3; do echo $i; ssh $i `which jps`; done
    storm1
    4606 Jps
    2516 core
    2346 QuorumPeerMain
    2408 nimbus
    2311 supervisor
    4684 drpc
    2466 logviewer
    storm2
    2336 QuorumPeerMain
    2388 supervisor
    2407 logviewer
    4535 Jps
    storm3
    5705 QuorumPeerMain
    5798 supervisor
    2962 logviewer
    7945 Jps

    2:
    192.168.1.41:8080






  • 相关阅读:
    LeetCode12: 整数转罗马数字
    LeetCode11:盛最多水的容器
    LeetCode09:判断回文数
    LeetCode08:字符串转换成整数
    LeetCode04:寻找中位数
    LeetCode03:无重复字符的最长子串
    《JAVA编程思想》第四版 PDF 下载 中文版和英文版 高清PDF扫描带书签
    XML
    异常
    委托和匿名方法和Lambda表达式
  • 原文地址:https://www.cnblogs.com/mengyao/p/4316471.html
Copyright © 2011-2022 走看看