zoukankan      html  css  js  c++  java
  • Storm入门(二)集群环境安装

    1.集群规划

    storm版本的变更:
    storm0.9.x   storm0.10.x  storm1.x
    上面这些版本里面storm的核心源码是由Java+clojule组成的。
    storm2.x
    后期这个版本就是全部用java重写了。
    (阿里在很早的时候就对storm进行了重写,提供了jstorm,后期jstorm也加入到apache storm,负责使用java对storm进行重写,这就是storm2.x版本的由来。)
    注意:
    在storm0.10.x的版本中,storm集群只支持一个nimbus节点,主节点是存在单点问题。
    在storm1.x以后,storm集群可以支持多个nimbus节点,其中有一个为leader,负责真正运行,其余的为offline。

    1.1服务器

    3台Centos6.8服务器,各服务器需要启动的服务如下。

    192.168.137.180 storm-cluster-64bit-1  内存1G

            Nimbus:负责分发代码,监控代码的执行。

            UI:可以查看集群的信息以及topology的运行情况。

            logviewer:因为主节点会有多个,有时候也需要查看主节点的日志信息。

            Zookeeper

    192.168.137.181 storm-cluster-64bit-2  内存1G

            Nimbus:负责分发代码,监控代码的执行。

            Supervisor:负责产生worker进程,执行任务。

            logviewer:可以通过webui界面查看topology的运行日志。

            Zookeeper

    192.168.137.182 storm-cluster-64bit-3  内存1G

            Supervisor:负责产生worker进程,执行任务。

            logviewer:可以通过webui界面查看topology的运行日志。

            Zookeeper

    1.2安装包

    zookeeper-3.4.5.tar.gz

    apache-storm-1.1.0.tar.gz

    2.搭建Zookeeper集群

    复制代码
    3台服务器同时执行以下操作。
    (1)解压和重命名
    tar -zxvf zookeeper-3.4.5.tar.gz 
    mv zookeeper-3.4.5 /usr/local/zookeeper
    (2)修改环境变量
    vi /etc/profile
    
    export ZOOKEEPER_HOME=/usr/local/zookeeper
    export PATH=.:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH
    
    source /etc/profile
    (3)到zookeeper下修改配置文件
    cd /usr/local/zookeeper/conf
    mv zoo_sample.cfg zoo.cfg
    
    修改conf: vi zoo.cfg 修改两处
    
    dataDir=/usr/local/zookeeper/data
    最后面添加
    server.0=192.168.137.180:2888:3888
    server.1=192.168.137.181:2888:3888
    server.2=192.168.137.182:2888:3888
    (4)创建服务器标识配置文件
    cd /usr/local/zookeeper/
    创建文件夹:mkdir data
    cd data
    创建文件myid并填写内容为0:vi myid (内容为服务器标识 : 0)
    其他两个服务器的值修改为1和2
    (5)启动zookeeper
    执行:zkServer.sh start (注意这里3台机器都要进行启动)
    状态:zkServer.sh status(在三个节点上检验zk的mode,一个leader和俩个follower)
    停止:zkServer.sh stop
    启动验证:输入jps,存在 QuorumPeerMain 进程的话,就说明 Zookeeper 启动成功了。
    复制代码

    3.安装Storm依赖库

    需要在Nimbus和Supervisor机器上安装Storm的依赖库Python2.6.6。

    我的Centos6.8系统自带了Python2.6.6,所以省略安装。

    4.解压安装Storm

    (1)解压Storm(1台服务器执行)

    tar -zxvf apache-storm-1.1.0.tar.gz

    mv apache-storm-1.1.0 /usr/local/storm

    (2)配置环境变量(3台服务器同时执行)

    vi /etc/profile

    export STORM_HOME=/usr/local/storm

    export PATH=.:$STORM_HOME/bin:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH

    source /etc/profile

    (3)修改storm.yaml配置文件(1台服务器执行)

    Storm发行版本解压目录下有一个conf/storm.yaml文件,用于配置Storm。

    vim /usr/local/storm/conf/storm.yaml

    1) storm.zookeeper.servers: Storm集群使用的Zookeeper集群地址,其格式如下:

    storm.zookeeper.servers:
        - "storm-cluster-64bit-1"
        - "storm-cluster-64bit-2"
        - "storm-cluster-64bit-3"

    如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项

    2) storm.local.dir: Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。然后在storm.yaml中配置该目录,

    如:mkdir -p /usr/local/storm/data

    storm.local.dir: "/usr/local/storm/data"

    3) nimbus.seeds: Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件,如:

    nimbus.seeds: ["storm-cluster-64bit-1","storm-cluster-64bit-2"]

    注意:nimbus.seeds指定的时候最好指定主机名,否则在webui界面查询的时候会重复显示节点信息。

    4) supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口,如:

    supervisor.slots.ports:
        - 6700
        - 6701
        - 6702
        - 6703

    【注意:yaml文件的格式,属性必须顶格,缩进只能使用空格,一点不能使用制表符。】

    5)把修改后的storm目录拷贝到其他所有主从节点【主从节点配置完全一样】
    scp -rq /usr/local/storm 192.168.137.181:/usr/local
    scp -rq /usr/local/storm 192.168.137.182:/usr/local

    6)修改/etc/hosts文件

    加上下面的设置。

    192.168.137.180 storm-cluster-64bit-1
    192.168.137.181 storm-cluster-64bit-2
    192.168.137.182 storm-cluster-64bit-3

    (4)启动storm各个服务进程

    最后一步,启动Storm的所有后台进程。和Zookeeper一样,Storm也是快速失败(fail-fast)的系统,这样Storm才能在任意时刻被停止,并且当进程重启后被正确地恢复执行。这也是为什么Storm不在进程内保存状态的原因,即使Nimbus或Supervisors被重启,运行中的Topologies不会受到影响。

    192.168.137.180
            nimbus:setsid storm nimbus &
            ui:setsid storm ui &
            logviewer:setsid storm logviewer &

    192.168.137.181
          nimbus:setsid storm nimbus
          logviewer:setsid storm logviewer &
          supervisor:setsid storm supervisor &
    192.168.137.182

          logviewer:setsid storm logviewer &
          supervisor:setsid storm supervisor &

    需要到/usr/local/storm/logs目录下查看各个进程是否成功启动。也可以jps查看。

    (5)访问storm的ui界面来查看集群信息

    http://192.168.137.180:8080

    注意:如果8080端口被占用,可以修改storm.yaml文件。最完整的属性配置在storm-core.jar中的defaults.yaml文件中。
    ui.port: 8081
    image

    需要在本地windows配置hosts文件,不然无法查询logs。

    C:WindowsSystem32driversetchosts

    192.168.137.180 storm-cluster-64bit-1
    192.168.137.181 storm-cluster-64bit-2
    192.168.137.182 storm-cluster-64bit-3

    image

    至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了。

  • 相关阅读:
    vue使用elementui合并table
    使用layui框架导出table表为excel
    vue使用elementui框架,导出table表格为excel格式
    前台传数据给后台的几种方式
    uni.app图片同比例缩放
    我的博客
    【C语言】取16进制的每一位
    SharePoint Solution 是如何部署的呢 ???
    无效的数据被用来用作更新列表项 Invalid data has been used to update the list item. The field you are trying to update may be read only.
    SharePoint 判断用户在文件夹上是否有权限的方法
  • 原文地址:https://www.cnblogs.com/liuys635/p/10786463.html
Copyright © 2011-2022 走看看