快速搭建 Flink 研发环境

647 阅读1分钟

为了方便大家学习 Flink, apache 提供 flink-playgrounds 项目帮助开发者通过 docker 快速搭建出一套用于学习、开发的环境。

由于是通过 docker 来运行,适用于任何平台,windows、mac os 、linux 等

搭建 Flink 环境

下载 flink-playgrounds,官方地址,我 clone 的是最新的稳定分支 1.11

git clone --branch release-1.11 https://github.com/apache/flink-playgrounds.git

打开 docker 切换到 flink-playgroundsoperations-playground目录,然后构建 docker 镜像,这一步可能比较耗时

cd flink-playgrounds/operations-playground

docker-compose build

启动环境,第一次启动需要下载一些东西

docker-compose up -d

查看正在运行的 docker 容器

docker-compose ps

查看管理页面

通过 http://localhost:8081 访问 Flink 管理页面

操作 Flink 研发环境

停止 Flink 研发环境

docker-compose down -v

启动 Flink 研发环境

cd flink-playgrounds/operations-playground
docker-compose up -d
docker-compose ps

查看日志,JobManager 日志可以通过添加 docker-compose 查看

docker-compose logs -f jobmanager

TaskManager 日志也可以

docker-compose logs -f taskmanager

Flink CLi

docker-compose run --no-deps client flink --help

Flink RestAPI

curl localhost:8081/jobs

Kafka 操作命令

//input topic (1000 records/s)
docker-compose exec kafka kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 --topic input

//output topic (24 records/min)
docker-compose exec kafka kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 --topic output

列出正在运行的作业

docker-compose run --no-deps client flink list

观察故障与恢复 1、观察输出

docker-compose exec kafka kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 --topic output

2、模拟故障

这里模拟 TaskManager 进程的丢失

docker-compose kill taskmanager

几秒钟后,JobManager 将注意到 TaskManager 丢失,取消受影响的 Job,然后立即重新提交以进行恢复。

3、恢复

docker-compose up -d taskmanager

重新启动 TaskManager 后,它将重新连接到 JobManager

参考

flink operations-playground

table api