先整体介绍一下搭建storm集群的步骤:
  1. 设置zookeeper集群
  2. 安装依赖到所有nimbus和worker节点
  3. 下载并解压storm发布版本到所有nimbus和worker节点
  4. 配置storm.yaml
  5. 启动相关后台进程

1 配置zookeeper集群

     我们知道storm通过zookeeper来协调整个集群。zookeeper不是用来做消息传递,因此storm不会给zookeeper带来很大的压力。单节点的zookeeper在大多情形下是可以胜任的,但是如果你想得到更好的可靠性或者部署大集群的话,你可能就需要一个大的zookeeper集群。关于zookeeper的部署在这里就不多做介绍,具体请参考:here
     关于zookeeper的部署这里再补充两点:
  1. 把zookeeper运行在一个监督进程之下是非常关键的,因为zookeeper是一个fail-fast的进程,当它遇到任何错误的时候都会自动退出,具体请参考:  here
  2. 定时的去压缩和转移zookeeper数据也是非常关键的,因为zookeeper不具备压缩和清楚数据机制,如果我们不设置一个cron管理这些数据,zookeeper产生的数据会很快的占满磁盘,具体请参考: here
     ps:如果zookeeper启动失败,查看一下它bin目录下的zookeeper.out文件,配置一下它的myid试试。

2 安装依赖到nimbus和worker节点

    storm需要依赖的是:
  1. Java 6
  2. Python 2.6.6
     需要注意,storm对大多数版本的依赖都做了测试,但是storm并不保证对任何版本的依赖都能正常工作。
 

3 下载解压storm发布版本到nimbus和worker节点

     下一步就是下载解压storm压缩文件到每一台机器,storm发布版本可以从这里下载from here

4 配置storm.yaml文件

     storm里面有一个文件conf/storm.yaml,它就是storm的配置文件。关于这个文件的所有默认值可以从这里得到here。storm.yaml中的配置会覆盖掉default.yaml中的配置。下面配置一个集群必须修改的配置:
 
     1) storm.zookeeper.servers:配置zookeeper集群的列表
  1. storm.zookeeper.servers:
  2. - "111.222.333.444"
  3. - "555.666.777.888"
     如果你的zookeeper集群使用的端口不是默认端口,那么你还得配置storm.zookeeper.port。
     2) storm.local.dir :storm的nimbus和work进程需要一个目录来存放一小部分状态数据,比如jars、confs等等。我们需要在每台机器上创建这个目录并且赋予其相应的权限。
  1. storm.local.dir: "/mnt/storm"
     3) nimbus.host:worker节点需要知道哪个机器是master节点,以便自己从maser节点下载jars和confs。
  1. nimbus.host: "111.222.333.44"
     4) supervisor.slots.ports:对于每一台worker机器,它决定了这台机器一共可以运行多少个worker进程。每个worker进程会独占一个端口来接收消息,这个参数就是配置了哪些端口会分配给worker进程。如果你在这配置了5个端口,那么storm将能分配5个worker进程给这台机器,如果配置3个端口,那么storm也只能分配3个worker进程。storm默认分配4个worker进程到6700,6701,6702,6703端口。比如:
  1. supervisor.slots.ports:
  2. - 6700
  3. - 6701
  4. - 6702
  5. - 6703

5 通过storm命令运行storm相关的守护进程

     最后一步就是启动所有storm相关守护进程。当然,把这些进程都纳入到监督进程管理之下是很有必要的。storm也是一个fail-fast系统,这就意味着这些进程一但遇到异常就会终止。storm之所以会这么设计,是为了它可以在任何时候安全的终止和在进程重启的时候恢复。这就是storm为不在进程中保存相关状态的原因,如果nimbus或supervisor节点重启,运行着的topoloies不会受到任何影响。下面就是启动storm相关进程的命令:
  1. Nimbus:在master节点运行“bin/storm nimbus”
  2. Supervisor:在每一台worker节点运行“bin/storm supervisor”,supervisor进程负责在worker节点上启动和停止相应的worker进程
  3. UI:运行“bin/storm ui” ,一个通过页面管理和展示storm集群运行状态的工具,可以通过“http://nimbus host:8080”来访问。
    我们可以看到启动storm服务进程相当简单直接,storm产生的log会保存在各台机器的storm/logs目录中,storm通过logback管理它的日志,我们可以通过修改其logback.xml文件来改变其log的目录及内容。

storm集群部署和配置过程详解的更多相关文章

  1. Storm 系列(三)Storm 集群部署和配置

    Storm 系列(二)Storm 集群部署和配置 本章中主要介绍了 Storm 的部署过程以及相关的配置信息.通过本章内容,帮助读者从零开始搭建一个 Storm 集群. 一.Storm 的依赖组件 1 ...

  2. Storm集群部署及单词技术

    1. 集群部署的基本流程 集群部署的流程:下载安装包.解压安装包.修改配置文件.分发安装包.启动集群 注意: 所有的集群上都需要配置hosts vi  /etc/hosts 192.168.239.1 ...

  3. 2.Storm集群部署及单词统计案例

    1.集群部署的基本流程 2.集群部署的基础环境准备 3.Storm集群部署 4.Storm集群的进程及日志熟悉 5.Storm集群的常用操作命令 6.Storm源码下载及目录熟悉 7.Storm 单词 ...

  4. Zookeeper集群部署与配置(三)

    在上一篇博客中我们讲解了<Zookeeper的单机配置>,此篇博客将继续介绍Zookeeper的集群部署与配置. 环境 集群配置的环境与单机配置的环境相同,唯一不同的就是集群是在多台服务器 ...

  5. Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)

    Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据, ...

  6. Storm集群的安装配置

    Storm集群的安装分为以下几步: 1.首先保证Zookeeper集群服务的正常运行以及必要组件的正确安装 2.释放压缩包 3.修改storm.yaml添加集群配置信息 4.使用storm脚本启动相应 ...

  7. Storm集群部署

    一. 说明 Storm是一个分布式实时计算系统,Storm对于实时计算的意义就相当于Hadoop对于批量计算的意义.对于实时性较高的系统Storm是不错的选择.Hadoop提供了map, reduce ...

  8. 理解 OpenStack + Ceph (1):Ceph + OpenStack 集群部署和配置

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

  9. Storm: 集群安装和配置

    前期准备:3台服务器: 192.168.8.94  192.168.8.95 192.168.8.96 去storm官网下载响应版本的软件包:http://storm.apache.org/downl ...

随机推荐

  1. php集成动态口令认证

    这篇文章主要为大家详细介绍了php集成动态口令认证,动态口令采用一次一密.用过密码作废的方式来提高安全性能,感兴趣的小伙伴们可以参考一下 大多数系统目前均使用的静态密码进行身份认证登录,但由于静态密码 ...

  2. POJ2417 Discrete Logging

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  3. a版本冲刺第四天

    队名:Aruba   队员: 黄辉昌 李陈辉 林炳锋 鄢继仁 张秀锋 章  鼎 学号 昨天完成的任务 今天做的任务 明天要做的任务 困难点 体会 408 完成学习Java从入门到精通基础篇 通读了构建 ...

  4. codevs 1772 歌词

    1772 歌词  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver       题目描述 Description 35痛过以后才知情已难寻吾爱至斯只剩飞花梦影回 ...

  5. IOS热更新-JSPatch实现原理+Patch现场恢复

    关于HotfixPatch 在IOS开发领域,由于Apple严格的审核标准和低效率,IOS应用的发版速度极慢,稍微大型的app发版基本上都在一个月以上,所以代码热更新(HotfixPatch)对于IO ...

  6. [NHibernate]增删改操作

    目录 写在前面 文档与系列文章 添加数据 删除数据 修改数据 添加修改数据 总结 写在前面 上篇文章介绍了nhibernate的基于面向对象的条件查询.对一个项目来说,增删改查是必不可少的,虽然实现方 ...

  7. 10W -python

    计算2 3 4 加运算符 小于30 >>> new=[''.join(('2',op,'3')) for op in ops] >>> print(new) ['2 ...

  8. angular-ui-bootstrap-modal必须要说的几个点(转)

    angular-ui-bootstrap-modal必须要说的几个点 摘要: 基于angular来实现的一个bootstrap模态框,有些不得不说的地方 项目中以前就经常用到模态框,但是一直没有时间来 ...

  9. python运算符

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcIAAAHCCAIAAADzel4SAAAgAElEQVR4Aey9+bMcSXLnV1dmna/ejR

  10. shutil复制粘贴和压缩

    shutil复制粘贴和压缩 shutil 高级的文件.文件夹.压缩包处理模块 @1).将文件内容拷贝到另一个文件中 import shutil shutil.copyfileobj(open(&quo ...