#Apache Flink cluster deployment on Docker using Docker-Compose
##Installation ###Install Docker
https://docs.docker.com/installation/
if you have issues with Docker-Compose versions incompatible with your version of Docker try
curl -sSL https://get.docker.com/ubuntu/ | sudo sh
###Install Docker-Compose
curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
###Get the repo
###Build the images
Images are based on Ubuntu Trusty 14.04 and run Supervor to stay alive when running containers.
The base image installs Oracle Java JDK 1.7 and SSH client & server. You can change the SSH password there or add your own key and adjust SSH config.
- Run
./build.sh
###Deploy
- Deploy cluster and see config/setup log output (best run in a screen session)
docker-compose up
- Deploy as a daemon (and return)
docker-compose up -d
- Scale the cluster up or down to N TaskManagers
docker-compose scale taskmanager=<N>
- Access the JobManager node with SSH (exposed on Port 220)
ssh root@localhost -p 220
or on Mac OS X with boot2docker
ssh root@$(boot2docker ip) -p 220
The password is 'secret'
- Kill the cluster
docker-compose kill
- Upload a jar to the cluster
scp -P 220 <your_jar> root@localhost:/<your_path>
- Run a topology
ssh -p 220 root@localhost /usr/local/flink/bin/flink run -c <your_class> <your_jar> <your_params>
or
ssh to the job manager and run the topology from there.
###Ports
- The Web Dashboard is on port
48080
- The Web Client is on port
48081
- JobManager RPC port
6123
(default, not exposed to host) - TaskManagers RPC port
6121
(default, not exposed to host) - TaskManagers Data port
6122
(default, not exposed to host) - JobManager SSH
220
- TaskManagers SSH: randomly assigned port, check wih
docker ps
Edit the docker-compose.yml
file to edit port settings.