blob: 9dff93095555a616c0c905245ad88d2533abcd7f [file] [log] [blame] [view]
#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.