天天看点

flink docker 运行在mesos之上的部署分享

从官方网站docker 镜像启动flink是比较容易的,如下:

docker run --name flink_jobmanager -d -t flink:1.6.1-hadoop28-scala_2.11-alpine jobmanager

docker run --name flink_jobmanager -d -t flink:1.6.1-hadoop28-scala_2.11-alpine taskmanager

部署到mesos+marathon 平台上就发现有点不知所措。因为要传递一个运行时参数进去。

后来,终于搞定了。这里分享给大家参考参考。

flink docker 运行在mesos之上的部署分享
flink docker 运行在mesos之上的部署分享
flink docker 运行在mesos之上的部署分享
flink docker 运行在mesos之上的部署分享

{

  "id": "/flink-cluster/flink-jobmanager",

  "cmd": null,

  "cpus": 1,

  "mem": 1024,

  "disk": 0,

  "instances": 1,

  "acceptedResourceRoles": [

    "*"

  ],

  "container": {

    "type": "DOCKER",

    "docker": {

      "forcePullImage": false,

      "image": "flink:1.6.1-hadoop28-scala_2.11-alpine",

      "parameters": [],

      "privileged": false

    },

    "volumes": [],

    "portMappings": [

      {

        "containerPort": 0,

        "labels": {},

        "protocol": "tcp",

        "servicePort": 10013

      }

    ]

  },

  "healthChecks": [

    {

      "gracePeriodSeconds": 300,

      "ignoreHttp1xx": false,

      "intervalSeconds": 60,

      "maxConsecutiveFailures": 3,

      "path": "/",

      "port": 8081,

      "protocol": "HTTP",

      "timeoutSeconds": 20,

      "delaySeconds": 15

    }

  ],

  "labels": {

    "org.projectcalico.label.role": "frontend"

  },

  "networks": [

    {

      "name": "frontend",

      "mode": "container"

    }

  ],

  "portDefinitions": [],

  "args": [

    "jobmanager"

  ]

}

继续阅读