首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flink 集群/任务容器化

Flink 集群/任务容器化

作者头像
runzhliu
发布2020-08-06 09:59:27
1.5K0
发布2020-08-06 09:59:27
举报
文章被收录于专栏:容器计算容器计算

1 Overview

/path/to/flink/flink-container/docker
├── Dockerfile
├── README.md
├── build.sh
├── docker-compose.yml
├── docker-entrypoint.sh
└── test-job-cluster.sh

0 directories, 6 files

Flink Dockerfile 走读已经介绍了 Flink 的镜像应该如何构建了,接下来,本文解释一下如何利用 Docker 来部署 Flink。

2 Docker Compose

以下是 docker-compose.yml 的内容。

# 省略 License
# Docker compose file for a Flink job cluster deployment.
# 注意下面这些参数的设置
# Parameters:
# * FLINK_DOCKER_IMAGE_NAME - Image name to use for the deployment (default: flink-job:latest)
# * FLINK_JOB - Name of the Flink job to execute (default: none)
# * DEFAULT_PARALLELISM - Default parallelism with which to start the job (default: 1)
# * FLINK_JOB_ARGUMENTS - Additional arguments which will be passed to the job cluster (default: none)
# * SAVEPOINT_OPTIONS - Savepoint options to start the cluster with (default: none)

version: "2.2"
services:
  job-cluster:
    image: ${FLINK_DOCKER_IMAGE_NAME:-flink-job}
    ports:
      - "8081:8081"
    command: job-cluster --job-classname ${FLINK_JOB} -Djobmanager.rpc.address=job-cluster -Dparallelism.default=${DEFAULT_PARALLELISM:-1} ${SAVEPOINT_OPTIONS} ${FLINK_JOB_ARGUMENTS}

  taskmanager:
    image: ${FLINK_DOCKER_IMAGE_NAME:-flink-job}
    command: task-manager -Djobmanager.rpc.address=job-cluster
    scale: ${DEFAULT_PARALLELISM:-1}

3 Example

好了,万事俱备,现在就在本地跑起来一个 Flink Job on Docker!

首先先构建镜像,可以参考下面的命令,当然这些变量可以根据文档自行定义。因为我没有自己写的用户代码,这里用 Flink 的 Example 下面的 WordCount.jar 来构建镜像,到时候就跑一个 WordCount 的 Job。而且我用的是官网下载的发行版,所以可以看到参数 --from-archive。默认构建的镜像叫做 flink-job:latest

./build.sh --from-archive ~/Downloads/flink-1.8.1-bin-scala_2.11.tgz --job-artifacts /Users/runzhliu/Downloads/flink-1.8.1/examples/batch/WordCount.jar
image_1dg6ll62ce86n0daq61lb61q181j.png-723.2kB
image_1dg6ll62ce86n0daq61lb61q181j.png-723.2kB

镜像构建好了,就用 docker compose up,启动容器。可以参考下面的命令。注意 FLINK_JOB 需要输入包含包名的类名,否则会找不到类。

FLINK_JOB=org.apache.flink.examples.java.wordcount.WordCount docker-compose up
image_1dg6lahldmopcnk1df819tjub316.png-522.3kB
image_1dg6lahldmopcnk1df819tjub316.png-522.3kB

运行中的日志。

image_1dg6l9iff4to1trllth17kf16fvp.png-574.4kB
image_1dg6l9iff4to1trllth17kf16fvp.png-574.4kB

如果速度快,可以看到 Flink UI。

image_1dg6l930k4qd1498l3uc41d5dc.png-121.3kB
image_1dg6l930k4qd1498l3uc41d5dc.png-121.3kB

4 Summary

根据官方提供的工具,现在就已经可以将 Flink Job 以 Docker 的方式运行起来了,这是给后面将 Flink Job 运行在 K8S 上的基础。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Overview
  • 2 Docker Compose
  • 3 Example
  • 4 Summary
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档