获取镜像
# 查看可用的稳定版本sudo docker search flinksudo docker pull fhueske/flink-sql-client-training-1.7.2:latestsudo docker pull flink:1.10-scala_2.11sudo docker pull wurstmeister/zookeepersudo docker pull wurstmeister/kafka:0.11.0.1sudo docker pull elasticsearch:6.7.0sudo docker image ls |grep flink
Flink环境准备
此次安装是基于Docker进行的,因此你只需要安装了Docker即可。不需要依赖Java、Scala环境、或是IDE。注意:Docker默认配置的资源可能不太够,会导致运行Flink Job时卡死。因此推荐配置Docker资源到3-4GB,3-4个CPU cores。
此次安装的环境使用Docker Compose来安装,包含了所需的各种服务的容器,包括:
- Flink SQL Client:用来提交query,以及可视化结果。
 - Flink JobManager 和 TaskManager:用来运行Flink SQL任务。
 - Apache Kafka:用来生成输入流和写入结果流。
 - Apache Zookeeper:Kafka的依赖项。
 - ElasticSearch:用来写入结果。
服务编排
编排文件如下:mkdir -p /share/flink && cd /share/flinkrm -rf /share/flink/docker-compose.ymlvi /share/flink/docker-compose.yml
version: '2'services:sql-client:image: fhueske/flink-sql-client-training-1.7.2:latestdepends_on:- kafka- jobmanager- elasticsearchenvironment:FLINK_JOBMANAGER_HOST: jobmanagerZOOKEEPER_CONNECT: zookeeperKAFKA_BOOTSTRAP: kafkaES_HOST: elasticsearchjobmanager:image: flink:1.10-scala_2.11hostname: "jobmanager"expose:- "6123"ports:- "8081:8081"command: jobmanagerenvironment:- JOB_MANAGER_RPC_ADDRESS=jobmanagertaskmanager:image: flink:1.10-scala_2.11expose:- "6121"- "6122"depends_on:- jobmanagercommand: taskmanagerlinks:- jobmanager:jobmanagerenvironment:- JOB_MANAGER_RPC_ADDRESS=jobmanagerzookeeper:image: wurstmeister/zookeeperports:- "2181:2181"kafka:image: wurstmeister/kafka:0.11.0.1ports:- "9092"depends_on:- zookeeperenvironment:HOSTNAME_COMMAND: "route -n | awk '/UG[ \t]/{print $$2}'"KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181volumes:- /var/run/docker.sock:/var/run/docker.sockelasticsearch:image: elasticsearch:6.7.0environment:- cluster.name=docker-cluster- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"- discovery.type=single-nodeports:- "9200:9200"- "9300:9300"ulimits:memlock:soft: -1hard: -1nofile:soft: 65536hard: 65536
服务构建
cd /share/flinksudo docker-compose -f docker-compose.yml build --no-cache # 不带缓存构建(只创建镜像,不会启动容器)sudo docker-compose -f docker-compose.yml up -d # 构建后运行sudo docker-compose -f docker-compose.yml up --build # 跟踪方式构建,可用于调试sudo docker-compose -f docker-compose.yml stop # 停止sudo docker-compose -f docker-compose.yml down # 移除
验证
cd /share/flink# 查看进程sudo docker-compose -f docker-compose.yml ps# 进入Flink SQL Clientsudo docker-compose exec sql-client ./sql-client.sh# jobmanagersudo docker-compose exec jobmanager /bin/bash# 批量WordCoun示例./bin/flink run examples/batch/WordCount.jar# 查看日志sudo docker logs flinksudo docker logs -f -t --tail=50 flink# 查看网络sudo docker network lssudo docker inspect flink
参考
语雀:Flink SQL训练环境搭建
https://www.yuque.com/studys/gk4weq/rh1ldu 
