码迷,mamicode.com
首页 > 其他好文 > 详细

Storm集群的搭建

时间:2015-07-31 21:45:47      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

集群结构

  Storm集群表面类似Hadoop集群。但在Hadoop上你运行的是”MapReduce jobs”,在Storm上你运行的是”topologies”。”Jobs”和”topologies”是大不同的,一个关键不同是一个MapReduce的Job最终会结束,而一个topology永远处理消息(或直到你kill它)。
 
  Storm集群有两种节点:控制(master)节点和工作者(worker)节点。
 
控制节点运行一个称之为”Nimbus”的后台程序,它类似于Haddop的”JobTracker”。Nimbus负责在集群范围内分发代码、为worker分配任务和故障监测。
 
  每个工作者节点运行一个称之”Supervisor”的后台程序。Supervisor监听分配给它所在机器的工作,基于Nimbus分配给它的事情来决定启动或停止工作者进程。每个工作者进程执行一个topology的子集(也就是一个子拓扑结构);一个运行中的topology由许多跨多个机器的工作者进程组成。
技术分享
 
一个Zookeeper集群负责Nimbus和多个Supervisor之间的所有协调工作(一个完整的拓扑可能被分为多个子拓扑并由多个supervisor完成)。
技术分享
技术分享此外,Nimbus后台程序和Supervisor后台程序都是快速失败(fail-fast)和无状态的;所有状态维持在Zookeeper或本地磁盘。这意味着你可以kill -9杀掉nimbus进程和supervisor进程,然后重启,它们将恢复状态并继续工作,就像什么也没发生。这种设计使storm极其稳定。这种设计中Master并没有直接和worker通信,而是借助一个中介Zookeeper,这样一来可以分离master和worker的依赖,将状态信息存放在zookeeper集群内以快速回复任何失败的一方。
 
 
集群的搭建过程
 
技术分享安装zookeeper集群
技术分享解压apache-storm-0.9.1-incubating.tar.gz
技术分享修改文件conf/storm.yaml
技术分享在nimbus节点执行"bin/storm nimbus >/dev/null 2>&1 &"启动Nimbus后台程序,并放到后台执行
技术分享在supervisor节点执行"storm/bin/storm supervisor >/dev/null 2>&1 &"启动Supervisor后台程序,并放到后台执行;
技术分享在nimbus节点执行"bin/storm ui >/dev/null 2>&1 &"启动UI后台程序,并放到后台执行,启动后可以通过http://{nimbus host}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。
 
Storm配置文件写法
 
技术分享使用两个空格作为一级缩进是 YAML 的约定,不能使用制表符(Tab)来代替
技术分享以“:”为结束符的字符串,代表了一个键名,“:”后面则是键值。“:”和键值之间必须有至少一个空格。
技术分享列表的元素前面的“-”必不可少,并且要跟随至少一个空格。也可以使用

      -  [value1, value2, value3] 表示列表

技术分享

 

向集群提交作业

storm   jar   *.jar   xxxxMainClass

 

 

 

 

 

 

 
 
 

Storm集群的搭建

标签:

原文地址:http://www.cnblogs.com/thinkpad/p/4693168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!