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(保证各主机可以正常通信,为避免 ...
随机推荐
- python基础-第十一篇-11.1JavaScript基础
JavaScript是一门解释型编程语言,主要是增强html页面的动态效果 JavaScript是有三部分组成:ECMAScript.BOM.DOM 单行注释// 多行/* */(必须是scr ...
- react 组件积累
material-ui material-table ant-design https://ant.design/docs/react/getting-started-cn 定义组件(注意,组件的名称 ...
- birt 日志打印
在birt初始initialize 方法里,定义日志输出方法 importPackage(Packages.java.util.logging); importPackage(Packages.log ...
- POJO,简单的Java对象
POJO = "Plain Ordinary Java Object",简单的Java对象,是为了避免和EJB混淆所创造的简称,是MartinFowler等发明的一个术语,用来表示 ...
- 剑指offer-基本思想学习(未包括代码)
转自:https://blog.csdn.net/Together_CZ/article/details/74906427 1.面试7:使用两个栈实现一个队列. //猛一看有点晕,实际上很简单. 使用 ...
- MongoDB的安全校验
一.MongoDB安全校验的重要性 每个MongoDB实例中的数据库都可以有许多用户.如果没有开启安全校验,限制用户权限,则每个进到数据库的用户都能任意的对数据库数据进行读,写甚至是读写操作.这样的场 ...
- matplotlib绘制饼状图
源自http://blog.csdn.net/skyli114/article/details/77508430?ticket=ST-41707-PzNbUDGt6R5KYl3TkWDg-passpo ...
- python全栈开发从入门到放弃之函数进阶
1.三元运算 a= 1 b=2 max = (a if a>b else b ) #条件成立的结果 if 条件 else 条件不成立的结果 print(max) 2.先上一首python之禅 i ...
- http超文本传输协议,get与post区别
一:什么是http? http:超文本传输协议(HTTP,HyperText Transfer Protocol),是一个客户端和服务器端传输的标准,是应用层通信协议.客户端是中端用户,服务器端是网站 ...
- python3.5实现购物车
一.购物车实现: 购物车功能: 用户登录:密码错误三次锁定账户. 商品列表分页显示:输入页码查看指定页数商品信息. 已购买商品列表:显示已购买的物品列表:可以模糊查询已购买的商品并在终端打印. 充值: ...