做为阿里巴巴开源的实时计算模型 jstorm,最后一次更新在2017年1月3日,版本2.2.1. github中最后释出版本:2.4.0,https://github.com/alibaba/jstorm/releases/tag/2.4.0.
官方主页:http://jstorm.io
最近需要使用部署一套,第一个想法就是使用docker进行部署,但由于jstorm默认为几个部分组成,且使用率zk。
| 角色 | 作用 |
| Nimbus | 调度器 |
| Supervisor | Worker的代理角色,负责Kill掉Worker和运行Worker |
| Worker | Task的容器 |
| Task | 任务的执行者 |
| ZooKeeper | 系统的协调者 |
在docker hub中搜索,大多数都不是很满意,基本都没有直接compose,最后找到了cranelana/jstorm-2.2.1,这个镜像提供了使用docker run的形式进行部署。
其中使用了Link, CMD指令。 最后只有自己动手编写docker-compose文件了。
整个镜像基于https://hub.docker.com/r/cranelana/jstorm-2.2.1。
docker-compose.yml 如下:
zookeeper:
image: 'bitnami/zookeeper:latest'
ports:
- '2181:2181'
environment:
- 'ALLOW_ANONYMOUS_LOGIN=yes'
volumes:
- 'zookeeper_data:/bitnami/zookeeper'
jstorm-nimbus:
image: cranelana/jstorm-2.2.1
volumes:
- /etc/localtime:/etc/localtime:ro
command: jstorm nimbus
links:
- zookeeper:zookeeper
depends_on:
- zookeeper
deploy:
replicas: 1
jstorm-supervisor:
image: cranelana/jstorm-2.2.1
volumes:
- /etc/localtime:/etc/localtime:ro
command: jstorm supervisor
links:
- zookeeper:zookeeper
- jstorm-nimbus:nimbus
depends_on:
- jstorm-nimbus
deploy:
replicas: 1
jstorm-ui:
image: cranelana/jstorm-ui-2.2.1
volumes:
- /etc/localtime:/etc/localtime:ro
ports:
- 28080:8080
links:
- zookeeper:zookeeper
- jstorm-nimbus:nimbus
depends_on:
- jstorm-nimbus
deploy:
replicas: 1
启动以后,访问http://127.0.0.1:28080查看
出现:
Clusters Summary clusters:1 nodes:1
则表示成功,如果为0,请检查配置信息。
注意事项
由于使用compose进行部署,在运行任务时,需要提前将jar配置为一个容器进行部署。或者通过link 找到 compose 生成的名字.
参考资料
https://docs.docker.com/compose/compose-file/
https://goinbigdata.com/docker-run-vs-cmd-vs-entrypoint/
https://hub.docker.com/r/cranelana/jstorm-2.2.1