storm学习之集群搭建

1.Storm的集群搭建及配置

搭建Storm集群所需要的组件:
  1. Storm1.1.1 wget http://mirror.bit.edu.cn/apache/storm/apache-storm-1.1.1/apache-storm-1.1.1.tar.gz;
  2. JDK1.7+;
  3. zookeepr wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz;
  4. supervisor(进程管理器,也可以不用);
JDK安装:
  1. 解压jdk后,配置环境变量,vim /etc/profile;
  2. 在profile脚本最后添加jdk环境变量配置,我的jdk解压在/opt/app下:
    export JAVA_HOME=/opt/app/jdk1.8.0_161
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
  3. 环境变量生效,source /etc/profile;
zookeeper集群安装:
  1. 解压zk后,进入zk配 /opt/app/zookeeper-3.4.11/conf,将 zoo_sample.cfg修改为zoo.cfg,配置zk,
    tickTime=2000                          #时间单元,各时间范围*该值
    initLimit=10         #follower节点启动时从leader同步数据时间限制*tickTime
    syncLimit=5                            #leader向follower发送心跳,follower响应心跳的时间
    dataDir=/opt/app/zk_storage/data       #zk数据存储目录
    dataLogDir=/opt/app/zk_storage/logs    #zk日志存储目录
    clientPort=2181                      
    autopurge.snapRetainCount=10           #自动清理事物日志和快照需保留的数量
    autopurge.purgeInterval=24             #与上面的搭配使用,清理的频率,单位小时
    server.1=ybin.test1:2888:3888          #集群节点配置
    server.2=ybin.test2:2888:3888
  2. 在dataDir指定的目录下创建myid文件,server.1的就写入1,server.2的节点对应myid文件写入2;
  3. vim /etc/hosts配置host,ybin.test2和ybin.test2分别对应两个节点的ip;
  4. 配置防火墙端口暴露(自己玩可关闭防火墙),vim /etc/sysconfig/iptables:
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 2181 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 2888 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 3888 -j ACCEPT
    重启防火墙service /etc/sysconfig/iptables restart;
  5. 分别启动两个节点的zk,/opt/app/zookeeper-3.4.11/bin/zkServer.sh start,jps -m查看zk进程是否启动;
  6. 进入zk控制台:/opt/app/zookeeper-3.4.11/bin/zkCli.sh,看是否有节点一直重连,如果有需确保各zk端口在防火墙中是打开的,zkCli.sh是zk的客户端;
storm集群安装及配置
  1. 解压storm后,进入storm的conf, vim storm.yml,配置基础信息;
  2. storm.zookeeper.servers:
         - "ybin.test1"
         - "ybin.test2"
    nimbus.seeds: ["ybin.test1","ybin.test2"]        #nimbus节点的主从配置,storm会自己选举主节点
    storm.zookeeper.port: 2181                       #zk端口 
    storm.zookeeper.root: "/storm_test"              #zk上storm的数据节点
    storm.local.dir: /opt/app/data/storm             #storm的数据存储路径
    storm.log.dir: /opt/app/logs/storm               #storm的日志存储路径
    supervisor.slots.ports:                          #supervisor的端口,一个端口运行一个worker
         - 6700
         - 6701
         - 6702
         - 6703
    # 
    ui.port: 80                                      #storm ui的端口,默认8080 
    
  3. 各节点配置好后,且确保防火墙端口打开启动storm;
  4. storm的启动不像zk样是守护进程的启动形式,如果使用storm nimbus启动后,退出ssh,storm的进程亦会退出,因此可以用nohup storm nimbus &的命令启动,这种方式启动后,如果storm的进程意外死掉,是不能自动重启的,而用进程管理工具supervisor可以帮我们管理storm进程,storm进程意外死掉时,supervisor能重启死掉的进程;
supervisor安装及配置:
  1. supervisor是以python开发的,因此安装supervisor需确保自己的虚拟机有python运行环境;
  2. 下载支持easy_install的setuptools工具包,wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py;
  3. easy_install supervisor ,supervisor安装完成后会生成三个执行程序:supervisortd(启动supervisor的管理命令)、supervisorctl(管理守护进程的客户端)、echo_supervisord_conf(初始化配置文件的管理命令);
  4. 安装之后,echo_supervisord_conf > /etc/supervisor/supervisord.conf,初始化supervisor配置文件
  5. 在 /etc/supervisor目录下新建storm的目录,并在改目录下分别建storm-nimbus.ini,storm-supervisor.ini,storm-ui.ini  3个配置文件;
  6. 分别配置3个文件,还有其他配置网上可查:
    [program:storm-nimbus]                  #进程的名字
    command=/opt/app/apache-storm-1.1.1/bin/storm nimbus   #进程启动脚本路径
    autorestart=true                     #是否进程挂起时重启
    user=root                         #用户组,可不配默认root
    stdout_logfile=/opt/app/logs/supervisord/storm-nimbus.log #进程启动日志,默认在/tmp 目录下
    
    [program:storm-supervisor]
    command=/opt/app/apache-storm-1.1.1/bin/storm supervisor
    autorestart=true
    
    [program:storm-ui]
    command=/opt/app/apache-storm-1.1.1/bin/storm ui
    autorestart=true
    stdout_logfile=/opt/app/logs/supervisord/storm-ui.log
  7. 配置supervisord.conf文件
    [inet_http_server]               ; supervisor web页面配置,默认不开启
    port=0.0.0.0:9001               ; web页面ip地址
    username=ybin               ; 登陆用户
    password=123               ; 密码
    
    [include]
    files = /etc/supervisor/storm/*.ini      ;supervisor进程配置脚本引入路径 
    
  8. 指定配置文件启动,supervisord -c /etc/supervisor/supervisord.conf,supervisorctl status看进程启动状态:
    [root@zoo1 supervisord]# supervisorctl status
    storm-nimbus                     RUNNING   pid 7124, uptime 0:00:03
    storm-supervisor                 RUNNING   pid 7122, uptime 0:00:03
    storm-ui                         RUNNING   pid 7123, uptime 0:00:03
    
  9. kill 一个进程,看是否会立刻被拉起:
    [root@zoo1 supervisord]# supervisorctl status
    storm-nimbus                     RUNNING   pid 7124, uptime 0:00:03
    storm-supervisor                 RUNNING   pid 7122, uptime 0:00:03
    storm-ui                         RUNNING   pid 7123, uptime 0:00:03
    [root@zoo1 supervisord]# kill 7124
    [root@zoo1 supervisord]# supervisorctl status
    storm-nimbus                     RUNNING   pid 7237, uptime 0:00:03
    storm-supervisor                 RUNNING   pid 7122, uptime 0:00:17
    storm-ui                         RUNNING   pid 7123, uptime 0:00:17
  10. supervisorctl相关命令:
    supervisorctl update			配置文件改变,重新加载配置文件
    supervisorctl reload			修改配置后重启supervisor,可用作重启所以进程
    supervisorctl start 进程名		启动某一个进程
    supervisorctl stop 进程名		停止某一个进程
    supervisorctl stop all  		停止所以进程
  11. 进入supervisor web页面,也可管理各进程
验证storm集群
  1. 进入storm ui界面,storm集群已经搭建完成,ybin.test2为nimbus的leader:
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值