Storm集群搭建

Storm集群搭建

一、Storm集群搭建

准备三台服务器,角色分配如下:

    yun01:Zookeeper、nimbus。

    yun02:Zookeeper、supervisor。

    yun03:Zookeeper、supervisor。

1、安装JDK

2、安装zookeeper集群

    参见: Zookeeper集群的搭建

3、安装Storm

    解压安装包即可

4、配置Storm

1.storm.yaml

    修改$STORM_HOME/conf目录下的storm.yaml文件。

1>必须修改的项

 storm.zookeeper.services:

    配置zookeeper集群的主机名称。

 nimbus.host:

    指定了集群中nimbus的节点。

supervisor.slots.ports:

    配置控制每个supervisor节点运行多少个worker进程。这个配置定义为worker监听的端口的列表,监听端口的个数控制了supervisor节点上有多少个worker的插槽。默认的storm使用6700~6703端口,每个supervisor节点上有4个worker插槽。

storm.local.dir:

    storm工作时产生的工作文件存放的位置,注意,要避免配置到/tmp下。

    配置样式如下:

#Zookeeper集群的ip地址或者主机名
storm.zookeeper.services:
   - "yun01"
   - "yun02"
   - "yun03"
#主节点的ip或者主机名
nimbus.host: "yun01"
#个节点的工作端口
supervisor.slots.ports:
   - 6700
   - 6701
   - 6702
   - 6703
#产生文件存储位置
storm.local.dir: "/home/software/storm/tmp"

    注意:每行主要语句开始的时候不要有空格,否则会有意想不到的错误发生。

2>可选的常用修改项

    nimbus.childopts(default: -Xms1024m):

    这项JVM配置会添加在启动nimbs守护进程的java命令行中。

    ui.port(default:8080):

    这项配置指定了Storm UI的Web服务器监听的端口。

    ui.childopts(default:-Xms1024m):

    这项JVM配置会添加在StormUI服务启动的Java命令行中。

    supervisor.childopts(default:-Xms768m):

    这项JVM配置会添加Supervisor服务启动的Java命令行中。

    worker.childopts(default:-Xms768m):

    这项JVM配置会添加worker服务启动的Java命令行中。

    topology.message.timeout.secs(default:30):

    这个配置项定义了一个tuple树需要应答最大时间秒数限制,超过这个时间则认为超时失败。

    topology.max.spout.pending(default:null):

    在默认值null的情况下,spout每当产生新的tuple时会立即向后端发送,由于下游bolt执行可能具有延迟,可能导致topology过载,从而导致消息处理超时。如果手动将该值改为非null正整数时,会通过暂停spout发送数据来限制同时处理的tuple不能超过这个数,从而达到为Spout限速的作用。

    topology.enable.message.timeouts(default:true):

    这个选项用来锚定的tuple的超时时间。如果设置为false,则锚定的tuple不会超时。

5、Storm命令

1.启动命令

    在启动storm之前确保storm使用的zookeeper已经启动且可以使用。

storm nimbus

    启动nimbus守护进程。

storm supervisor

    启动supervisor守护进程。

storm ui

    启动stormui的守护进程,从而可以通过webUI界面来监控storm运行过程。

storm drpc

    启动一个DRPC服务守护进程。

2.管理命令

storm jar topology_jar topology_class[arguments...]

    向集群提交topology。它会使用指定的参数运行topology_class中的main()方法,同时上传topology_jar文件到nimbus以分发到整个集群。提交后,Storm集群会激活并且开始运行topology。topology中的main()方法需要调用StormSubmitter.submitTopology()方法,并且为topology提供集群内唯一的名称。

storm kill topology_name[-w wait_time]

    用来关闭已经部署的topology。

storm deactivate topology_name

    停止指定topology的spout发送tuple

storm activate topology_name

    恢复指定topology的spout发送tuple。

storm rebalance topology_name[-w wait_time][-n worker_count][-e component_name=executor_count]

    指定storm在集群的worker之间重新平均地分配任务,不需要关闭或者重新提交现有的topology。当执行rebalance命令时,Storm会先取消激活topology,等待配置的的时间使剩余的tuple处理完成,然后再supervisor节点中均匀的重新分配worker。重新分配后,Storm会将topology恢复到之前的激活状态。

storm remoteconfvalue conf-name

    用来查看远程集群中的配置参数值。

6、把topology提交到集群中

    案例:改造之前的单词计数案例,将其在集群中运行。

    修改提交topology的代码:

StormSubmitter.submitTopology("mywc", conf, topology);

    将程序打成jar包,同时设置jar包的主类,将jar包上传到集群中。

    通过命令执行jar包:

storm jar /root/work/stormwc.jar cn.tedu.storm.wc.WordCountTopology

    执行一段时间后,可以通过如果下命令关闭topology

storm kill mywc

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张戈的专栏

解决Nginx Helper插件一键清理缓存功能导致网站打不开问题

5 月份,张戈博客分享了一篇《Nginx 开启 fastcgi_cache 缓存加速,支持 html 伪静态页面》的文章。文中也提到了 WordPress 有一...

44290
来自专栏PPV课数据科学社区

工具 | 大数据系列(5)——Hadoop集群MYSQL的安装

文|指尖流淌 前言 有一段时间没写文章了,最近事情挺多的,现在咱们回归正题,经过前面四篇文章的介绍,已经通过VMware安装了Hadoop的集群环境,相关的两款...

32360
来自专栏公有云大数据平台弹性 MapReduce

YARN之label调度在EMR中的应用

在腾讯云EMR的用户场景使用当中,有部分用户要求希望他们能在任务高峰期,对集群进行扩容,利用云端的弹性计算资源,为集群扩展计算能力,并且在集群相对空闲的情况下,...

32630
来自专栏魏艾斯博客www.vpsss.net

lnmp 开启 Opcache 脚本缓存提高 php 性能

lnmp 开启 Opcache 脚本缓存可以提高 php 运行性能,进而提高整体服务器的运行效率。Opcache 是 Zend 开发的闭源但可以免费使用的 PH...

18650
来自专栏张善友的专栏

MSDTC 故障排除

大多数 K2 blackpearl  运行时操作都需要 Microsoft 分布式事务处理协调器 (MSDTC) 支持,以确保操作事务性一致。如果没有 MSDT...

28260
来自专栏散尽浮华

Netdata---Linux系统性能实时监控平台部署记录

通常来说,作为一个Linux的SA,很有必要掌握一个专门的系统监控工具,以便能随时了解系统资源的占用情况。下面就介绍下一款Linux性能实时监测工具-Netda...

95880
来自专栏魏艾斯博客www.vpsss.net

lnmp 开启 Opcache 脚本缓存提高 php 性能

19930
来自专栏沈唁志

宝塔面板Mysql 5.6版本无法正常启动的解决方法

朋友找我的时候说的是 Mysql 启动不了,看他发的截图是宝塔面板,就要来了面板信息去看了一下

2.4K20
来自专栏北京马哥教育

解决八种Linux硬盘问题的技巧

#1 - 错误: 设备上无剩余空间 当你的类UNIX系统磁盘写满了时你会在屏幕上看到这样的信息。本例中,我运行fallocate命令然后我的系统就会提示磁盘空间...

69860
来自专栏我是攻城师

Bug死磕之hue集成的oozie+pig出现资源任务死锁问题

34860

扫码关注云+社区

领取腾讯云代金券