IT技术互动交流平台

Storm集群部署

作者:wxisme  来源:IT165收集  发布日期:2016-02-18 21:50:32

一. 说明

  Storm是一个分布式实时计算系统,Storm对于实时计算的意义就相当于Hadoop对于批量计算的意义。对于实时性较高的系统Storm是不错的选择。Hadoop提供了map, reduce原语,使批处理程序变得非常地简单和优美。同样,storm也为实时计算提供了一些简单优美的原语。

  涉及的术语说明:

  Nimbus:Storm集群的主控节点,负责在Storm集群内分发代码,分配任务给工作机器,并且负责监控集群运行状态。其进程名为nimbus。

  Supervisor:Supervisor负责监听从Nimbus分配给它执行的任务,据此启动或停止执行任务的工作进程。其进程名为supervisor。

  core:Storm的UI服务进程。

  安装部署前的准备工作:

  1. 配置各主机IP,将各主机IP配置为静态IP(保证各主机可以正常通信,为避免过多的网络传输,建议在同一网段)。

  2. 修改各主机名,Storm集群中的所有主机都需要修改。

  3. 配置各主机映射,修改hosts文件,加入各主机IP和主机名的映射。

  4. 开放相应端口,后面文档中配置的端口都需要开放(或者关闭防火墙)。

  5. Python2.7及以上版本。

  6. 保证Zookeeper集群服务正常运行。如果在CentOS上安装过Hadoop或者Zookeeper的话,1-5项基本没问题。关于Zookeeper参考:http://www.cnblogs.com/wxisme/p/5178211.html。

  7. 这里使用的JDK、Storm版本分别为1.8和0.9.5。

二. 安装配置Storm集群

  1. 到Storm官网下载对应的安装包并上传到集群节点。

  2. 解压安装包

tar -xvzf apache-storm-0.9.5.tar.gz

  3. 修改storm.yaml配置文件

vim conf/storm.yaml

  Storm集群使用的Zookeeper集群地址,根据实际情况进行修改。

storm.zookeeper.servers:
      - 'node1'
      - 'node2'
      - 'node3'

  Zookeeper的端口不是默认端口时需要配置参数:

storm.zookeeper.port: '修改的端口'

  Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录(根据实际情况创建)并给以足够的访问权限。

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

  Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件。根据实际情况进行修改。

nimbus.host: 'node3'

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

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

  DRPC提供了集群中处理功能的访问接口,storm集群drpc地址,根据实际情况进行修改。关于DRCP参考:http://www.dataguru.cn/article-5572-1.html

drpc.servers:
      - 'node3'

  默认情况下,Storm启动worker进程时,JVM的最大内存是768M。由于在使用过程中,Bolt中加载大量数据,768M内存无法满足要求,会导致内存溢出。根据实际情况进行修改。

worker.childopts: '-Xmx1024m'

注意:上面的各项配置之间最好不要留有空行或者其他的空白字符。

三. 启动Storm集群

  1. 在主控节点启动Nimbus服务

bin/storm nimbus >> /dev/null &

  查看nimbus服务是否启动:

jps

  2.在各个节点启动Supervisor服务

bin/storm supervisor >> /dev/null &

  3.启动drpc服务

bin/storm drpc >> /dev/null &

  4.在主控节点启动Storm UI服务

bin/storm ui >> /dev/null &

  查看UI服务是否启动:

jps

  访问Storm UI

http://nimbus:8080/

四. 向Storm集群提交服务

  执行以下命令,启动Storm Topology:

bin/storm jar test.jar com.test.MyTopology arg1 arg2

  其中,test.jar是包含Topology实现代码的jar包,com.test.MyTopology的main方法是Topology的入口,arg1和arg2为com.test.MyTopology执行时需要传入的参数。

  停止Storm Topology:

bin/storm kill {toponame}

  其中,{toponame}为Topology提交到Storm集群时指定的Topology任务名称。

简单的Storm集群就部署好了,可以开始愉快的Storm之旅了!

Tag标签: 集群  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规