jstorm docker-compose 部署

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

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注