使用Docker快速部署Storm环境
Storm的部署虽然不是特别麻烦,但是在生产环境中,为了提高部署效率,方便管理维护,使用Docker来统一管理部署是一个不错的选择。下面是我开源的一个新的项目,一个配置好了storm与mono环境的Docker镜像编排:storm-mono-docker。
这个项目得益于https://github.com/ptgoetz/storm-vagrant和https://github.com/wurstmeister/storm-docker;在此感谢他们的付出!
项目使用的Docker镜像托管在 https://index.docker.io。
准备工作
安装 Docker Engine,https://docs.docker.com/
安装 docker-compose http://docs.docker.com/compose/install/
克隆git项目:
git clone https://github.com/ziyunhx/storm-mono-docker
使用
首先将命令行目录切换到刚刚克隆下来的git项目目录;
通过以下命令启动集群:
docker-compose up -d
- 你也可以使用 docker-compose up 命令来将结果输出到当前命令行界面,但是在你结束它之前无法进行任何其它操作,而一旦命令行退出,所有的容器都将停止。而 docker-compose up -d 将在后台启动所有容器。
停止这个集群的所有容器:
docker-compose stop
容器一旦停止,下次直接启动将无法正常链接容器,导致storm运行异常,你可以在结束后使用以下命令结束和移除所有的Docker缓存:
docker kill $(docker ps -q) ; docker rm $(docker ps -a -q)
增加更多的supervisors:
docker-compose scale supervisor=4
使用以下命令删除所有的镜像文件(小心,这会让你下一次启动时花费更多时间下载容器,仅在不想继续使用时执行):
docker rmi $(docker images -q -a)
重新构建和更新
你可以在修改Dockerfile后使用以下命令来重新构建镜像:rebuild.sh ;
使用以下命令来更新镜像到最新版本:refresh.sh 。
问与答
如何访问Storm UI来查看运行状况?
在docker-compose.yml中有下面这段配置:
ui:
image: ziyunhx/storm-ui
ports:
- "49080:8080"
它告诉我们将Docker镜像的8080端口映射到了主机的49080,因此你可以通过访问 http://localhost:49080 来访问。如果你使用 boot2docker ,你可以通过以下命令得到虚拟机的IP:
$ boot2docker ip
The VM's Host only interface IP address is: 192.168.59.103
返回的结果就是你的IP,本例中可以通过 http://192.168.59.103:49080 来访问。
如何部署提交一个topology?
如果 nimbus 的IP与端口不是默认的,你需要指定它们后来提交,本例中可以使用以下命令:
storm jar target/your-topology-fat-jar.jar com.your.package.AndTopology topology-name -c nimbus.host=192.168.59.103 -c nimbus.thrift.port=49627
如果上述命令没有起作用,你可以在本地的Storm配置文件(storm.yaml)配置以下项:
nimbus.host: "192.168.59.103"
nimbus.thrift.port: 49627
然后执行以下命令提交:
storm jar target/your-topology-fat-jar.jar com.your.package.AndTopology topology-name
如何连接我的容器?
通过使用 docker-compose ps 找到你希望连接的容器的ssh端口,然后通过ssh连接:
$ ssh root@`boot2docker ip` -p $CONTAINER_PORT
密码是 ‘ziyunhxpass’ (位于:https://registry.hub.docker.com/u/ziyunhx/base/dockerfile/)。
本文来自 The NewIdea,作者 Carey Tzou 。
首发地址:http://www.tnidea.com/deploy-storm-by-docker.html
未经授权,拒绝任何全文及摘要转载!
使用Docker快速部署Storm环境的更多相关文章
- 利用Docker快速部署Oracle环境
工作中需要频繁使用Oracle环境,但是每次搭建起来比较消耗时间,本想通过虚拟机模板的方式来快速安装oracle vm,但是每次改ip等环境也很耗时,因此想到docker中有没有已经做好的images ...
- 巧用 Docker 快速部署 GPU 环境
公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 在 Linux 服务器上使用 GPU 跑深度学习的模型很正常不过.如果我们想用 Docker 实现同样的需求,就需要做些额外 ...
- 私活利器,docker快速部署node.js应用
http://cnodejs.org/topic/53f494d9bbdaa79d519c9a4a 最近研究了几天docker的快速部署,感觉很有新意,非常轻量级和方便,打算在公司推广一下,解放运维, ...
- 使用Docker快速搭建ELK环境
今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...
- 使用Docker快速部署ELK分析Nginx日志实践(二)
Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...
- 使用Docker快速部署各类服务
使用Docker快速部署各类服务 一键安装Docker #Centos环境 wget -O- https://gitee.com/iubest/dinstall/raw/master/install. ...
- 利用Docker快速部署Mysql
写在前面 我又来更新了~~~,今天内容较少,主要是利用Docker快速部署Mysql和初始化数据 利用Docker下载Mysql 简洁明了,在命令提示符中输入 docker pull mysql:8. ...
- spring boot / cloud (十八) 使用docker快速搭建本地环境
spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...
- 使用Docker快速部署ELK分析Nginx日志实践
原文:使用Docker快速部署ELK分析Nginx日志实践 一.背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前 ...
随机推荐
- (十三)WebGIS中工具栏的设计之命令模式
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 从这一章节开始我们将正式进入WebGIS的工具栏中相关功能的 ...
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- mybatis入门基础(四)----输入映射和输出映射
一:输入映射 通过parameterType指定输入参数的类型,类型可以是简单类型.hashmap.pojo的包装类型. 1.1.传递pojo的包装对象 1.1.1.需求描述 完成用户信息的综合查询, ...
- 工作流引擎Oozie(二):coordinator
1. 简介 coordinator是workflow的定时提交器,基于时间条件与数据生成触发(based on time and data triggers).简单点说,coordinator按所定义 ...
- Hibernate —— 映射关联关系(附录)
一.单向的多对一 1.建表语句 CREATE TABLE customer ( customer_id ) NOT NULL AUTO_INCREMENT PRIMARY KEY , ) CREATE ...
- # ASP.NET Core依赖注入解读&使用Autofac替代实现
标签: 依赖注入 Autofac ASPNETCore ASP.NET Core依赖注入解读&使用Autofac替代实现 1. 前言 2. ASP.NET Core 中的DI方式 3. Aut ...
- PHP+MYSQL网站SQL Injection攻防
程序员们写代码的时候讲究TDD(测试驱动开发):在实现一个功能前,会先写一个测试用例,然后再编写代码使之运行通过.其实当黑客SQL Injection时,同样是一个TDD的过程:他们会先尝试着让程序报 ...
- 【nodejs笔记4】搭建多人博客<内含http请求的get post方法区别>
功能分析 博客具有四个功能:注册 登录 登出 发表文章 界面设计 未登录: [主页 注册页 登录页] [主页] 主页 左侧 HOME ...
- 【PHP夯实基础系列】PHP日期,文件系统等知识点
1. PHP时间 1)strtotime() //日期转成时间戳 2) date()//时间戳变成日期 <?php date_default_timezone_set("PRC&quo ...
- FactoryMethodPattern(工厂方法)
/** * 工厂方法模式 * 分为四部分 * 1.产品接口 * 2.产品实例 * 3.工厂接口 * 4.工厂实例 * 工厂类最好用单例模式,但在这里主要是说明工厂方法,就不用单例了 * @author ...