Git Product home page Git Product logo

docker-flink's Introduction

build Twitter

Flink docker

Apache Flink docker images to:

  • Setup a standalone Apache Flink cluster running one Flink Master and multiple Flink workers
  • Build Flink applications in Scala, Java or Python to run on a Flink cluster

Currently supported versions:

  • Flink 1.14.5 for Hadoop 3.2 and Scala 2.12
  • Flink 1.14.2 for Hadoop 3.2 and Scala 2.12
  • Flink 1.14.0 for Hadoop 3.2 and Scala 2.12
  • Flink 1.13.0 for Hadoop 3.2 and Scala 2.12
  • Flink 1.12.2 for Hadoop 3.2 and Scala 2.12
  • Flink 1.7.2 for Hadoop 2.8 and Scala 2.11
  • Flink 1.7.2 for Hadoop 2.7 and Scala 2.11
  • Flink 1.7.1 for Hadoop 2.8 and Scala 2.11
  • Flink 1.7.1 for Hadoop 2.7 and Scala 2.11
  • Flink 1.7.0 for Hadoop 2.8 and Scala 2.11
  • Flink 1.7.0 for Hadoop 2.7 and Scala 2.11
  • Flink 1.6.3 for Hadoop 2.8 and Scala 2.11
  • Flink 1.6.3 for Hadoop 2.7 and Scala 2.11
  • Flink 1.6.2 for Hadoop 2.8 and Scala 2.11
  • Flink 1.6.2 for Hadoop 2.7 and Scala 2.11
  • Flink 1.6.1 for Hadoop 2.8 and Scala 2.11
  • Flink 1.6.1 for Hadoop 2.7 and Scala 2.11
  • Flink 1.6.0 for Hadoop 2.8 and Scala 2.11
  • Flink 1.6.0 for Hadoop 2.7 and Scala 2.11
  • Flink 1.5.5 for Hadoop 2.8 and Scala 2.11
  • Flink 1.5.5 for Hadoop 2.7 and Scala 2.11
  • Flink 1.5.4 for Hadoop 2.8 and Scala 2.11
  • Flink 1.5.4 for Hadoop 2.7 and Scala 2.11
  • Flink 1.5.3 for Hadoop 2.8 and Scala 2.11
  • Flink 1.5.3 for Hadoop 2.7 and Scala 2.11
  • Flink 1.5.2 for Hadoop 2.8 and Scala 2.11
  • Flink 1.5.2 for Hadoop 2.7 and Scala 2.11
  • Flink 1.5.1 for Hadoop 2.8 and Scala 2.11
  • Flink 1.5.1 for Hadoop 2.7 and Scala 2.11
  • Flink 1.5.0 for Hadoop 2.8 and Scala 2.11
  • Flink 1.5.0 for Hadoop 2.7 and Scala 2.11
  • Flink 1.4.2 for Hadoop 2.8 and Scala 2.11
  • Flink 1.4.2 for Hadoop 2.7 and Scala 2.11
  • Flink 1.4.1 for Hadoop 2.8 and Scala 2.11
  • Flink 1.4.1 for Hadoop 2.7 and Scala 2.11
  • Flink 1.4.0 for Hadoop 2.8 and Scala 2.11
  • Flink 1.4.0 for Hadoop 2.7 and Scala 2.11
  • Flink 1.3.2 for Hadoop 2.7 and Scala 2.11
  • Flink 1.3.1 for Hadoop 2.7 and Scala 2.11
  • Flink 1.3.0 for Hadoop 2.7 and Scala 2.11
  • Flink 1.2.1 for Hadoop 2.7 and Scala 2.11
  • Flink 1.2.0 for Hadoop 2.7 and Scala 2.11
  • Flink 1.1.4 for Hadoop 2.7 and Scala 2.11
  • Flink 1.1.3 for Hadoop 2.7 and Scala 2.11
  • Flink 0.10.2 for Hadoop 2.7 and Scala 2.11
  • Flink 0.10.1 for Hadoop 2.7 and Scala 2.11

Using Docker Compose

Add the following services to your docker-compose.yml to integrate a Flink master and Flink worker in your BDE pipeline:

flink-master:
   image: bde2020/flink-master:1.14.5-hadoop3.2
   hostname: flink-master
   container_name: flink-master
   environment:
      - INIT_DAEMON_STEP=setup_flink

   ports:
     - "8080:8080"
     - "8081:8081"

 flink-worker:
   image: bde2020/flink-worker:1.14.5-hadoop3.2
   hostname: flink-worker
   container_name: flink-worker
   environment:
     - FLINK_MASTER_PORT_6123_TCP_ADDR=flink-master
#    - FLINK_NUM_TASK_SLOTS=2
   depends_on:
      - "flink-master"

Running Docker containers without the init daemon

docker network create flink-net

Flink Master

To start a Flink master:

docker run --name flink-master --net flink-net -d bde2020/flink-master:1.14.5-hadoop3.2

Flink Worker

To start a Flink worker:

docker run --name flink-worker --net flink-net -e FLINK_MASTER_PORT_6123_TCP_ADDR=flink-master -d bde2020/flink-worker:1.14.5-hadoop3.2

Launch a Flink application

Building and running your Flink application on top of the Flink cluster is as simple as extending a template Docker image. Check the template's README for further documentation.

docker-flink's People

Contributors

earthquakesan avatar gezimsejdiu avatar ksylla avatar luigiselmi avatar trushev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-flink's Issues

Testing on docker swarm

Please provide docker-compose v2 definition compatible with docker swarm and instructions on how to run it inside swarm.

Logs should be available through docker logs command

Master and worker docker containers should dump the logs into stdout.

At the moment, logs are not available. For instance, in a case of failing flink-worker, there will be empty output in docker logs:

docker logs dockerflink_flinkworker_1 
Missing streaming mode (batch|streaming). Using 'batch'.
Starting taskmanager daemon on host flink-worker.

Is this deprecated?

Is this deprecated?
The last commit is 19 Feb 2019.
Is there a way to get the latest docker image?
Thx

flink-worker has status Exited (0) right after docker run

I'm trying to setup a Flink cluster using docker run commands found in READE.

First I deploy the master using

$ docker run --name flink-master -h flink-master -e ENABLE_INIT_DAEMON=false -d bde2020/flink-master:0.10.1-hadoop2.7
$ docker logs flink-master
Starting Flink webclient
Missing streaming mode (batch|streaming) argument. Using 'batch'.
Starting jobmanager daemon on host flink-master.
Cluster started.

Then I deploy two workers

$ docker run --name flink-worker-1 --link flink-master:flink-master -e ENABLE_INIT_DAEMON=false -d bde2020/flink-worker:0.10.1-hadoop2.7
$ docker logs flink-worker-1
Missing streaming mode (batch|streaming). Using 'batch'.
Starting taskmanager daemon on host 80bb50f151cd.
$ docker run --name flink-worker-2 --link flink-master:flink-master -e ENABLE_INIT_DAEMON=false -d bde2020/flink-worker:0.10.1-hadoop2.7
$ docker logs flink-worker-2
Missing streaming mode (batch|streaming). Using 'batch'.
Starting taskmanager daemon on host 6cda68eb7512.

When I check the container status both workers seem to exit right after they are deployed.

$ sudo docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6cda68eb7512 bde2020/flink-worker:0.10.1-hadoop2.7 "/bin/bash /worker.sh" 7 seconds ago Exited (0) 6 seconds ago flink-worker-2
80bb50f151cd bde2020/flink-worker:0.10.1-hadoop2.7 "/bin/bash /worker.sh" 13 seconds ago Exited (0) 13 seconds ago flink-worker-1
c69c45ebe9a1 bde2020/flink-master:0.10.1-hadoop2.7 "/bin/bash /master.sh" 25 seconds ago Up 24 seconds 22/tcp, 6123/tcp, 8080/tcp flink-master

Is this the proper way to deploy the cluster? Should I do something else to keep the workers alive?

Incorrect number of task slots after restart services

Hi, thank you for the image. I found a bug and would like to share it with you

Steps to reproduce

  1. in docker-compose.yml set
FLINK_NUM_TASK_SLOTS=12
  1. then run
docker-compose up -d
  1. finally, restart services
docker-compose restart

expected task slots 12
actual task slots 122

Possible solution

the problem place in worker/worker.sh
it can be fixed by replacing

sed -i -e "s/taskmanager.numberOfTaskSlots: 1/taskmanager.numberOfTaskSlots: ${FLINK_NUM_TASK_SLOTS}/g" /usr/local/flink/conf/flink-conf.yaml

with

sed -i -e "s/taskmanager.numberOfTaskSlots: [0-9]\+/taskmanager.numberOfTaskSlots: ${FLINK_NUM_TASK_SLOTS}/g" /usr/local/flink/conf/flink-conf.yaml

i.e. by changing "1" to "[0-9]\+"

docker-compose up on master branch does not work

(docker-compose)โžœ  docker-flink git:(master) docker-compose up
Creating dockerflink_flinkmaster_1
Creating dockerflink_flinkworker_1
Attaching to dockerflink_flinkmaster_1, dockerflink_flinkworker_1
flinkmaster_1  | Starting Flink webclient
flinkmaster_1  | Missing streaming mode (batch|streaming) argument. Using 'batch'.
flinkmaster_1  | Starting jobmanager daemon on host flink-master.
flinkmaster_1  | Cluster started.
flinkworker_1  | Missing streaming mode (batch|streaming). Using 'batch'.
flinkworker_1  | Starting taskmanager daemon on host flink-worker.
dockerflink_flinkworker_1 exited with code 0

Network address of flink master should be configurable for each flink worker

At the moment the config is hardcoded as follows:

flinkmaster:
    image: bde2020/flink-master:0.10.1-hadoop2.7
    hostname: flink-master
    environment:
      - INIT_DAEMON_STEP=setup_flink
#    networks:
#      - flink
flinkworker:
    image: bde2020/flink-worker:0.10.1-hadoop2.7
    hostname: flink-worker
#    networks:
#     - flink
    links:
      - "flinkmaster:localhost"

The worker is connected to flinkmaster using hardcoded "localhost" host name (in master/slaves file?). The proper docker-compose.yml should look like:

flinkmaster:
    image: bde2020/flink-master:0.10.1-hadoop2.7
    environment:
      - INIT_DAEMON_STEP=setup_flink
flinkworker:
    image: bde2020/flink-worker:0.10.1-hadoop2.7
    links:
      - "flinkmaster"
    environment:
       - FLINK_MASTER=flinkmaster

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.