Storm入门与实践(2)构建Storm的开发环境与集群
来源:互联网 发布:origin绘图软件下载 编辑:程序博客网 时间:2024/05/20 02:25
1. Storm 技术栈
Storm 运行在JVM之上,大部分功能都是通过Java与Clojure进行开发。
Storm的主要接口都是通过Java进行开发,但绝大多数的逻辑都是由Clojure进行实。
Python主要用来实现Storm的后台程序以及管理命令程序。
2. Storm环境搭建
在搭建Storm环境之前,需要对Java以及Zookeeper的环境进行配置
2.1 安装基础依赖
2.1.1 安装JDK
- 下载安装包:http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz
- 解压缩:tar -xvf jdk-8u144-linux-x64.tar.gz
- 设置环境变量,在/etc/profile输入以下内容
JAVA_HOME=/usr/java/jdk-8u144-linux-x64CLASSPATH=.:$JAVA_HOME/lib.tools.jarPATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME CLASSPATH PATH
- 执行source /etc/profile
- 验证:java -version
2.1.2 安装Zookeeper
安装过程参见:http://blog.csdn.net/eric_sunah/article/details/43969603
2.2 本地调试/开发
如果还没有搭建集群,又想试一下Storm的运行效果,可以通过本地运行的方式运行,提交Topology的方式如下:
LocalCluster cluster = new LocalCluster();cluster.submitTopology("word-count", conf, builder.createTopology());
2.3 手动配置集群
当并发量较大时,需要将Topology提交到集群中运行,本章主要介绍手动搭建集群的方式
。
集群配置流程如下:
1. 环境信息
- storm的版本:1.1.0
- OS版本:Ubuntu 14.04
2. 机器角色分配
3. 在192.168.5.137上下载storm:http://www.apache.org/dyn/closer.lua/storm/apache-storm-1.1.1/apache-storm-1.1.1.tar.gz
4. 解压缩:tar –zvxf apache-storm-1.1.1.tar.gz –C /usr/local/
5. 配置环境变量/etc/profile
export STORM_HOME==/usr/local/storm export PATH=$STORM_HOME/bin:$PATH
- 修改storm.yaml,Storm发行版本解压目录下有一个conf/storm.yaml文件,用于配置Storm。以下配置选项是必须在conf/storm.yaml中进行配置的:
# Storm使用的Zookeeper集群地址storm.zookeeper.servers: - "192.168.5.138" - "192.168.5.139" - "192.168.5.140"# Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,这里提供两个做主备nimbus.seeds: ["192.168.5.137", "192.168.5.138"]# Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。storm.local.dir: "/root/storm/wkdir"# Storm ui的端口ui.port: 9999# 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703
- 将192.168.5.137的/usr/local/apache-storm-1.1.1 目录同步到其他几个节点
- 每个节点都执行 source /etc/profile
启动进程:Stor也是快速失败(fail-fast)的系统,Storm可以在任意时刻被停止,并且当进程重启后被正确地恢复执行。这也是为什么Storm不在进程内保存状态的原因,即使Nimbus或Supervisors被重启,运行中的Topologies不会受到影响。
以下是启动Storm各个后台进程的方式:- Nimbus: 在Storm主控节点上运行 “storm nimbus &”
- Supervisor: 在Storm各个工作节点上运行” storm supervisor &”
- UI: 在Storm主控节点上运行 “storm ui &”
注意事项:
- Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。
- Storm UI必须和Storm Nimbus部署在同一台机器上,否则UI无法正常工作
- 为了方便使用,可以将bin/storm加入到系统环境变量中
- 验证:登录http://192.168.137:9999/index.html 查看集群情况
2.4 提交Topology
如果Topology已经生成好了Jar包,可以通过以下方式提交Topology
./storm jar storm_demo.jar com.eric.storm.sample.WordCountTopolopgyAllInJava
3 配置说明
Storm中包含了大量的配置,至于集群的配置信息可以参考 http://192.168.5.137:9999/index.html 中的 Nimbus Configuration 部分的内容。
关于配置的解释,可以参考官方文档:http://storm.apache.org/releases/1.1.1/Configuration.html
4 自动化配置集群
当集群规模比较大时,集群的管理是一个复杂的问题。Puppet提供了对Storm 集群进行管理的一套脚本。需要的同学可以自行研究下,github地址:https://github.com/miguno/puppet-storm
- Storm入门与实践(2)构建Storm的开发环境与集群
- Storm入门与实践(4)Storm的容错机制
- Storm入门与实践(3)通过WordCount展开Storm的编程之旅
- Storm入门与实践(1)入门介绍
- 搭建Storm集群与Storm的并发概念简介
- Storm 入门与安装
- storm集群的配置与启动
- storm的集群安装与配置
- Storm 集群的安装与配置
- Jstorm安装与集群环境搭建(storm集群配置类似)
- storm教程(五):storm消息的可靠性保障与acker机制、Thrift client 集群监控
- Storm 单机环境的安装与配置
- Storm 单机环境的安装与配置
- Storm集群安装实践
- Twitter Storm简介与入门
- Twitter Storm简介与入门
- storm集群环境搭建
- Storm集群环境安装
- javaScript中格式化日期毫秒数
- Codeforces Round #428 (Div. 2) ( 组合数学)
- JDK5以后的新特性---增强for循环,静态导入,可变参数
- js,html里unicode与ascii转换代码
- 微信小程序组件探究和应用
- Storm入门与实践(2)构建Storm的开发环境与集群
- 做视频直播时如何测试本地网络的上行带宽(网速测试)
- Openstack部署工具总结
- Spring data redis-StringRedisTemplate 用法
- Android 自定义View画圆
- realm-android-library简单使用(笔记)
- 进程、线程定义和区别,浅谈php中的线程
- APUE.3e 安装(基于ubuntu12.0.4)
- 安卓-学生信息管理系统(逐渐整理)