做为阿里巴巴开源的实时计算模型 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