作者标注
经过验证, 到当前版本为止 flink-1.7 snapshot,构建 flink docker镜像需要采用这个flink docker 构建工具 https://github.com/docker-flink/docker-flink
,按照flink官方代码库里的构建出来的flink镜像有些功能不能用,比如 flink-standalone模式,report metrics等。
Docker设置
Docker Hub上有关于Apache Flink的Docker镜像,可用于部署flink群集。Flink镜像库还包含用于创建容器映像以部署flink工作集群的一些工具以及说明。
Flink session群集
Flink会话群集可用于运行多个业务。在部署后,每个业务都需要提交到集群才能跑起来。
Docker镜像
该Flink镜像库托管在docker hub,提供了flink1.2.1以及之后的版本镜像。
注意: Docker镜像是由个人提供的社区项目,它们并不是Apache Flink PMC的官方版本(作者标注:所以需要用这个个人的构建工具,而不是官方代码库里的构建工具)。
Flink作业集群
Flink作业集群是运行单个作业的专用集群,这是镜像内容的一部分,因此,不需要额外的工作。
Docker镜像
Flink作业集群镜像需要包含启动集群的作业的用户代码jar。因此,需要为每个作业构建专用的容器镜像。该flink-container模块包含一个build.sh脚本,可用于创建此类镜像。有关详细信息,请参阅说明。(作者注:这个是官方的构建方式,试过有问题,比如跑 flink-standalone再 report metrics)
Flink与Docker Compose
Docker Compose是一种很方便的用于在本地启动一组Flink Docker容器的方式。
用法
启动集群
$docker-compose up
以deamon的方式启动集群
$docker-compose up -d
集群扩展 N 个 TaskManagers
$docker-compose scale taskmanager=<N>
销毁集群
$docker-compose kill
当拉起一个Flink群集后,您可以访问 http:// localhost:8081
的Web UI ,在界面里您还可以将作业提交到群集。
如果要通过命令行将作业提交到会话群集,必须将JAR复制到JobManager容器里并从那里执行作业。
例如:
1 |
|