小白storm集群部署

Java应用开发好多年,随着公司架构的变更,初步接触实时数据计算,从初期的Storm,到现在的Flink,开始对实时数据计算产生了深厚的兴趣,虽然目前主流实时开发架构选择都是Flink,但是前期Storm依旧遗留了一下工程,在搭建Storm集群过程中也是耗费了一下时间,简单的把Storm集群搭建过程记录下来,希望帮到有需要的人

Strom集群搭建涉及三个概念:Zookeeper、Nimbus、Supervisor

Zookeeper:完成nimbus和supervisor之间协调的服务。而应用程序实现实时的逻辑则被封装到Storm中的topology,而topology则是一组由Spouts(数据源)和Bolts(数据操作)通过Stream Groupings进行连接的图

Nimbus:Storm集群的Master节点,负责在集群中分发用户代码,指派给具体的Supervisor节点上的Worker节点,去运行Topology对应的组件(Spout/Bolt)的Task,可以设置多国nimbus,其中只有一个为Leader

Supervisor:Storm集群的从节点,负责管理运行在Supervisor节点上的每一个Worker进程的启动和终止。通过Storm的配置文件中的supervisor.slots.ports配置项,可以指定在一个Supervisor上最大允许多少个Slot,每个Slot通过端口号来唯一标识,一个端口号对应一个Worker进程(如果该Worker进程被启动)。

了解了基础原理,现在就可以搭建起来

    一、环境准备:

1、配置JDK环境 
       2、安装python:最好是2.6.6版本以上,目前CentOS自带了python

    二、安装Zookeeper

        1、Zookeeper的官方地址:https://zookeeper.apache.org/releases.html,下载对应的版本信息,本文按照使用的3.4.6版本为准,解压zookeeper-3.4.6.tar.gz包获取信息如下:


        2、进入conf目录,创建一个zookeeper的配置文件zoo.cfg,可复制conf/zoo_sample.cfg作为配置文件
        3、在zoo.cfg文件中设置配置参数,常用参数简介如下:
                initLimit:LF初始通信时限 ,集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)
                syncLimit:LF同步通信时限, 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)
               dataDir:数据文件目录,Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里
               dataLogDir:日志文件目录, Zookeeper保存日志文件的目录
               clientPort:客户端连接端口, 客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求
               autopurge.snapRetainCount:保留数量
               autopurge.purgeInterval=1  清理时间间隔1小时
               server.N=YYY:A:B : 服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
               这个配置项的书写格式比较特殊,规则如下:
               其中N表示服务器编号,YYY表示服务器的IP地址,A为LF通信端口,表示该服务器与集群中的leader交换的信息的端口。B为选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader)。一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。但是当所采用的为伪集群时,IP地址都一样,只能时A端口和B端口不一样。 

             例如:server.1=11.11.11.1:2287:3387
                       server.2=11.11.11.2:2287:3387
                       server.3=11.11.11.3:2287:3387
                       可以根据实际需求配置多个server    
        4、除了修改zoo.cfg配置文件外,zookeeper集群模式下还要配置一个myid文件,这个文件需要放在dataDir目录下。这个文件里面有一个数据就是A的值(该A就是zoo.cfg文件中server.A=B:C:D中的A),在zoo.cfg文件中配置的dataDir路径中创建myid文件。
        在11.11.11.1服务器上创建myid文件,并设置为1,与zoo.cfg文件里面的server.1对应,如下:echo "1" > myid;

        5、启动zk,进入zookeeper-3.4.6/bin目录下,可以看到如下信息:


           执行sh zkServer.sh start命令,启动zk
           可以使用./zkServer.sh start-foreground  查看zk的状态

  三、Strom安装

        1、官方下载最新storm安装文件,解压到Linux服务器中,官网地址:http://storm.apache.org/downloads.html
        2、解压storm文件,获取如下信息:


        3、进入storm的conf文件夹下,修改storm.yaml配置文件
              a、配置 zookeeper 列表,zookeeper为上面安装的zk服务IP:
                  storm.zookeeper.servers:
                         - "11.11.11.1"
                         - "11.11.11.2"
                         - "11.11.11.3"
             b、配置 storm 本地 dir:storm.local.dir: "/dev/storm/workdir"
             c、配置nimbus,numubs可以选择多台,按照集群实际大小,一般多选择三台storm作为nimubus服务:
                  nimbus.seeds: ["11.11.11.4","11.11.11.5","11.11.11.6"]
             d、配置端口号,每一个端口号为一个worker,端口号可以设置多个,根据自己机器的实际性能设置:
                 supervisor.slots.ports:
                     - 6000
                     - 6001
                     - 6002
             e、设置ui.port:ui.port: 8765
             f、logviewer.port:logviewer.port: 8182
             g、storm.local.hostname: "11.11.11.1",设置hostname信息
             h、jvm配置信息,可以设置nimbus.childopts、supervisor.childopts、worker.childopts的jvm的信息
                  nimbus.childopts: -Xmx2048m -Xms2048m
                  supervisor.childopts: -Xmx2048m -Xms2048m
                  worker.childopts: "-Dworker=worker -Xms4096m -Xmx4096m -XX:SurvivorRatio=8 -XX:NewSize=1536M -XX:HeapDumpPath=/dev/storm/logs/dumpfile.hprof -XX:+HeapDumpOnOutOfMemoryError"
        4、conf文件夹下面的storm-env.sh文件,当没有配置JDK环境变量时,可以在改配置文件下制定对应的JDK的地址:
             export JAVA_HOME=/dev/jdk1.8.0_11
        5、配置好storm.yaml文件之后,就可以启动strom了,首先需要启动nimbus,进入bin目录下,对应命令为:
             nohup ./storm nimbus &
             nohup ./storm ui &
             启动nimbus以及UI界面信息,启动成功之后就可以通过访问UI界面,查看Storm UI信息了
       6、访问 http://11.11.11.4:8765/index.html,可以看到如下页面
       7、启动supervisor服务,进入到bin目录下,执行如下命令:
             nohup ./storm supervisor &
             nohup ./storm logviewer &
            完成supervisor以及log的启动,在stormUI界面上,就可以看到对应的worker的基本信息配置了

到目前位置,整个sotrm集群就已经搭建完成了,后续可以直接发布storm任务信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值