02_Storm集群部署
1. 部署前的硬件及软件检查
硬件要求
1)storm集群部署包括zookeeper部署,而zookeeper集群最小为3台机器
2)storm的计算过程都在内存中完成,因此内存要尽量大
3)storm少部分数据在本地(topology提交会有本地目录,storm.local.dir/nimbus/inbox目录下),使用系统盘即可,不需要额外添加磁盘
软件要求
storm通过java编写,因此依赖于Java,同时还在少数情况下需要使用python(一般linux自带)
要提前保证java和python软件在待部署机器或虚拟机上的安装
集群部署注意事项
1)storm版本选择
* 不能太老(功能,性能)
* 该版本的参考资料必须足够多
* 最好不使用最新的版本(稳定性验证不够)
2. Storm集群部署
zookeeper的部署,请参考本博客的zookeeper系列,这里不在赘述
Storm集群部署
1)上传安装包到待部署节点,解压并得到安装目录
以我的为例,安装包上传到3个待部署节点的/usr/local/src/目录,解压后得到storm安装目录,同时修改安装目录名为storm-0.9.3
[/usr/local/src]chmod apache-storm-0.9..tar.gz
[/usr/local/src]tar -xzvf apache-storm-0.9..tar.gz
[/usr/local/src]mv apache-storm-0.9. storm-0.9.
2) 修改storm配置文件storm.yaml
任选1个节点,进入storm安装目录下的conf目录,找到配置文件storm.yaml
[/usr/local/src]cd storm-0.9./conf
[/usr/local/src]vim storm.yaml
将配置文件中的一些注释符号#删除,配置如下信息
*storm.zookeeper.servers, zookeeper服务器地址,通过hostname配置
*nimbus.host, nimbus部署在哪一台机器上,通过hostname配置
*storm.local.dir, storm存储临时文件及nimbus上存放上传的任务jar包的目录,storm启动会自动创建该目录
*supervisor.slots.ports, supervisor节点能够运行的worker进程数,每个进程占用1个port

将该节点的配置文件保存,通过SCP分发到其他节点
[conf]scp –rp storm.yaml root@slave1:/usr/local/src/storm-0.9./conf/
[conf]scp –rp storm.yaml root@slave2:/usr/local/src/storm-0.9./conf/
3) Storm环境变量配置
复制storm安装目录路径,在/etc/profile尾部增加如下内容(所有集群节点都要配置环境变量)
# STORM HOME and PATH modify
export STORM_HOME=/usr/local/src/storm-0.9.
export PATH=$PATH:$STORM_HOME/bin
在所有集群节点上,使配置文件生效
# source /etc/profile
4) 启动nimbus及storm ui(网页形式的UI页面)
在storm-0.9.3/bin/目录下创建start.sh启动脚本(和supervisor的启动脚本不同),并填入如下内容

storm logviewer >dev/null 2>&1 & //ui页面上显示可滚动的log日志
给脚本增加执行权限, 并执行
# chomd start.sh
# ./start.sh
5) 启动supervisor节点
在storm-0.9.3/bin/目录下创建start.sh启动脚本(和supervisor的启动脚本不同),并填入如下内容

storm logviewer >dev/null 2>&1 & //ui页面上显示可滚动的log日志
给脚本增加执行权限, 并执行
# chomd start.sh
# ./start.sh
6) 查看各个节点上的storm进程
Nimbus节点
core为storm ui进程

Supervisor节点


7) 查看storm UI监控页面,部署完成
http://主节点ip:8080/

02_Storm集群部署的更多相关文章
- Quartz.net持久化与集群部署开发详解
序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项 ...
- Openfire 集群部署和负载均衡方案
Openfire 集群部署和负载均衡方案 一. 概述 Openfire是在即时通讯中广泛使用的XMPP协议通讯服务器,本方案采用Openfire的Hazelcast插件进行集群部署,采用Hapro ...
- 基于Tomcat的Solr3.5集群部署
基于Tomcat的Solr3.5集群部署 一.准备工作 1.1 保证SOLR库文件版本相同 保证SOLR的lib文件版本,slf4j-log4j12-1.6.1.jar slf4j-jdk14-1.6 ...
- jstorm集群部署
jstorm集群部署下载 Install JStorm Take jstorm-0.9.6.zip as an example unzip jstorm-0.9.6.1.zip vi ~/.bashr ...
- CAS 集群部署session共享配置
背景 前段时间,项目计划搞独立的登录鉴权中心,由于单独开发一套稳定的登录.鉴权代码,工作量大,最终的方案是对开源鉴权中心CAS(Central Authentication Service)作适配修改 ...
- Windows下ELK环境搭建(单机多节点集群部署)
1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...
- 理解 OpenStack + Ceph (1):Ceph + OpenStack 集群部署和配置
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- HBase集成Zookeeper集群部署
大数据集群为了保证故障转移,一般通过zookeeper来整体协调管理,当节点数大于等于6个时推荐使用,接下来描述一下Hbase集群部署在zookeeper上的过程: 安装Hbase之前首先系统应该做通 ...
- SolrCloud-5.2.1 集群部署及测试
一. 说明 Solr5内置了Jetty服务,所以不用安装部署到Tomcat了,网上部署Tomcat的资料太泛滥了. 部署前的准备工作: 1. 将各主机IP配置为静态IP(保证各主机可以正常通信,为避免 ...
随机推荐
- Apache 2.4 配置多个虚拟主机的问题
以前一直用Apache2.2的版本,最近升级到了2.4的版本,尝尝新版本嘛. 不过遇到了几个问题,一个就是配置了多个virtualhost,虽然没有报错,不过除了第一可以正常访问外,其他的都存在403 ...
- Commons Email使用
Apache Commons Email Apache的一个开源项目,是基于另一个开源项目Java Mail上进行封装的,使用起来更加简单方便: http://commons.apache.org/p ...
- 02-django查询
目录 (一)查询 1 .基本查询(等于.大于.包含字符.日期.字段比较.逻辑) 2 .关联查询(即为join查询)(一对多.多对多.一对一) 3 .聚合查询(统计查询) (二)关联对象(已知A表的 ...
- oracle入门(8)——实战:支持可变长参数、多种条件、多个参数排序、分页的存储过程查询组件
[本文介绍] 学了好几天,由于项目需要,忙活了两天,写出了个小组件,不过现在还只能支持单表操作.也没考虑算法上的优化,查询速度要比hibernate只快了一点点,可能是不涉及多表查询的缘故吧,多表的情 ...
- JVM类加载器工作流程
类加载器 classloader:谈到类加载,不得不提的就是负责此项工作的类加载器classloader,classloader的职责是将Java源文件编译后的字节码文件加载到内存中去执行. 类加载至 ...
- (转)C语言中Exit函数的使用
C语言中Exit函数的使用 exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如 ...
- (转)全局变量、extern/static/const区别与联系
全局变量.extern/static/const区别与联系 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LIN ...
- __new__方法以及TypeError: object() takes no parameters的处理
一些python书或博客将类中的__init__方法称为构造函数,而实际上这种说法是不严格的,因为创建实例的方法是__new__,实例初始化的方法是__init__.__new__方法会返回一个实例, ...
- [转]Raanan Fattal - Image and Video Upscaling from Local Self-Examples 图像放大
转自:http://www.sigvc.org/bbs/thread-1032-1-1.html 论文链接:http://www.cs.huji.ac.il/~raananf/projects/lss ...
- Java GC 标记/清除算法
1) 标记/清除算法是怎么来的? 我们在程序运行期间如果想进行垃圾回收,就必须让GC线程与程序当中的线程互相配合,才能在不影响程序运行的前提下,顺利的将垃圾进行回收. 为了达到这个目的,标记/清除算法 ...