流式计算--storm2(storm集群搭建)

    如果对流式计算概念,核心组件,编程模型不熟悉可以参考流式计算--storm1(storm概念初识)

1.环境:

     

    机器配置:centos7   jdk8   storm 1.0 .6 zookeeper 3.4.13 

   1. 安装CentOS7注意:安装CentOs7,配置NAT网络,但是还没有网,没有IP地址

    所以修改/etc/sysconfig/network-scripts/ifcfg-ens33 文件

     

    查看防火墙状态:firewall-cmd --state    

    永久关闭防火墙:systemctl disable firewalld.service

  2.创建普通用户

       useradd storm

      #为storm用户添加密码:

       echo 123456| passwd --stdin storm

     #将storm添加到sudoers,这是重新创建一个用户组,他有着自己的home/ storm目录

     echo "storm ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/ storm

     chmod 0440 /etc/sudoers.d/ storm

     #修改配置文件sudo vim /etc/sudoers

      root ALL=(ALL) ALL

      storm ALL=(ALL) ALL

     给storm用户添加执行的权限然后强制保存

   3.安装jdk

      

   

    mkdir /export

    mkdir /export/servers

    sudo chmod -R 777 /export

    export JAVA_HOME=/export/servers/jdk/jdk1.8.0_181

    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    export PATH=$PATH:$JAVA_HOME/bin

    

   4.安装zookeeper:上传解压 配置文件

    cd  /export/servers/zookeeper/conf

     mv zoo_sample.cfg zoo.cfg

     vi zoo.cfg

     内容如下:
    

# The number of milliseconds of each tick
#基本事件单元,以毫秒为单位。它用来控制心跳和超时,默认情况下最小的会话超时时间为两倍的 tickTime
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
#此配置表示,允许 follower (相对于 leader 而言的“客户端”)连接并同步到 leader 的初始化连接时间,
#它以 tickTime 的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
#此配置表示, leader 与 follower 之间发送消息,请求和应答时间长度。
#如果 follower 在设置的时间内不能与 leader 进行通信,那么此 follower 将被丢弃
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
#数据目录. 可以是任意目录,其中的dataDir目录和dataLogDir需要提前建立好
#注意 应该谨慎地选择日志存放的位置,使用专用的日志存储设备能够大大地提高系统的性能,
#如果将日志存储在比较繁忙的存储设备上,那么将会在很大程度上影响系统的性能。
dataDir=/export/servers/data/zookeeper
#log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置,其中的dataDir目录和dataLogDir需要提前建立好
#注意 应该谨慎地选择日志存放的位置,使用专用的日志存储设备能够大大地提高系统的性能,
#如果将日志存储在比较繁忙的存储设备上,那么将会在很大程度上影响系统的性能。
dataLogDir=/export/servers/logs/zookeeper
# the port at which the clients will connect
#监听client连接的端口号.
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#这个操作将限制连接到 ZooKeeper 的客户端的数量,限制并发连接的数量,它通过 IP 来区分不同的客户端。
#此配置选项可以用来阻止某些类别的 Dos 攻击。
#将它设置为 0 或者忽略而不进行设置将会取消对并发连接的限制。
maxClientCnxns=0
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

#最小的会话超时时间以及最大的会话超时时间。
#其中,最小的会话超时时间默认情况下为 2 倍的 tickTme 时间
#最大的会话超时时间默认情况下为 20 倍的会话超时时间
minSessionTimeout=4000
maxSessionTimeout=10000
#server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. 
#B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口.
#在之前设置的dataDir中新建myid文件, 写入一个数字, 该数字表示这是第几号server. 
#该数字必须和zoo.cfg文件中的server.X中的X一一对应.
#2888是leader和follower通信的端口,3888是投票的端口
server.1=192.168.25.130:2888:3888
server.2=192.168.25.131:2888:3888
server.3=192.168.25.132:2888:3888

  创建配置中的数据目录和日志目录:

mkdir -p /export/servers/data/zookeeper

mkdir -p /export/servers/logs/zookeeper

在上文中 /export/servers/data/zookeeper 的目录下,创建myid文件。

myid文件的内容,根据所属主机编号来编写。

    解释:

    创建数据目录,也就是在你zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件,并且指定id,id为你zoo.cfg文件中server.1=localhost:2887:3887中的1.只要在myid头部写入1即可.

配置环境变量:

export ZK_HOME=/export/servers/zk

export PATH=${ZK_HOME}/bin:$PATH

加载配置文件使其生效:source  /etc/profile

5.安装storm

    1.解压到指定目录:

     tar -zxvf apache-storm-0.9.5.tar.gz -C /export/servers/

     cd /export/servers/

     ln -s apache-storm-0.9.5 storm

     2.配置环境变量

       vim /etc/profile

       export STORM_HOME=/export/servers/storm

       export PATH=$PATH:$STORM_HOME/bin

     3.编辑storm核心配置文件

       vim storm.yaml

      

#指定storm使用的zk集群
storm.zookeeper.servers:
     - "storm01"
     - " storm02"
     - " storm03"
#指定storm集群中的nimbus节点所在的服务器
nimbus.host: " storm01"
#指定nimbus启动JVM最大可用内存大小
nimbus.childopts: "-Xmx1024m"
#指定supervisor启动JVM最大可用内存大小
supervisor.childopts: "-Xmx1024m"
#指定supervisor节点上,每个worker启动JVM最大可用内存大小
worker.childopts: "-Xmx768m"
#指定ui启动JVM最大可用内存大小,ui服务一般与nimbus同在一个节点上。
ui.childopts: "-Xmx768m"
#指定supervisor节点上,启动worker时对应的端口号,每个端口对应槽,每个槽位对应一个worker
supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703

4.修改hosts:
192.168.25.130 storm01 zk01

192.168.25.131 storm02 zk02

192.168.25.132 storm03 zk03

      这儿很重要的一步是克隆三台机器,修改zookeeper的配置文件myid

5.修改虚拟机的名字

  hostnamectl set-hostname

 

 6.启动zookeeper集群:zkServer.sh start 

    查看集群的状态,没有问题./zkServer.sh status

6.启动storm

启动storm:

  1. 在nimbus.host所属的机器上启动 nimbus服务

cd /export/servers/storm/bin/

nohup ./storm nimbus &

  1. 在nimbus.host所属的机器上启动ui服务

cd /export/servers/storm/bin/

nohup ./storm ui &

  1. 在其它个点击上启动supervisor服务

cd /export/servers/storm/bin/

nohup ./storm supervisor &

7.查看集群

 访问nimbus.host:/8080,即可看到storm的ui界面。

  

 流式计算一般架构图

         (下面会一步一步实现这个流程敬请期待。。。)

          

         

  1. 其中flume用来获取数据。
  2. Kafka用来临时保存数据。
  3. Strom用来计算数据。
  4. Redis是个内存数据库,用来保存数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空恋旅人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值