赞
踩
Apache Flink 是一个开源的分布式流批一体化的计算框架,它提供了一个流计算引擎,能够处理有界和无界的数据流。Flink 的核心优势在于其高吞吐量、低延迟的处理能力,以及强大的状态管理和容错机制。它支持事件驱动的应用和复杂的事件处理(CEP),并且可以处理批处理任务。Flink 的设计目标是提供一个易于使用、灵活且高性能的数据处理平台。
Flink 的一些关键特性包括:
在 Docker 中部署 Flink 是一种流行的实践,因为它简化了环境的配置和管理工作。以下是使用 Docker 部署 Flink 的基本步骤:
安装 Docker:确保你的系统上已经安装了 Docker,可以从 Docker 官网下载并安装。
创建 Docker 网络:为了使 Flink 组件能够相互通信,需要创建一个 Docker 网络。
docker network create flink-network
拉取 Flink 镜像:从 Docker Hub 拉取官方的 Flink 镜像。
docker pull flink:1.15.0-scala_2.12-java8
启动 Flink 组件:使用 Docker 命令启动 Flink 的 JobManager 和 TaskManager 组件,并加入到创建的网络中。
docker run -d -p 8081:8081 --name flink-jobmanager --network flink-network --env FLINK_PROPERTIES="jobmanager.rpc.address: flink-jobmanager" flink:1.15.0-scala_2.12-java8 jobmanager
docker run -d --name flink-taskmanager --network flink-network --env FLINK_PROPERTIES="jobmanager.rpc.address: flink-jobmanager" flink:1.15.0-scala_2.12-java8 taskmanager
访问 Flink Web UI:通过浏览器访问 http://<host>:8081
来查看 Flink 的 Web UI 界面,其中 <host>
是运行 JobManager 的 Docker 主机的地址。
提交 Flink 作业:可以通过 Flink 的命令行工具或者 Web UI 提交作业到集群运行。
管理 Flink 集群:可以通过 Docker 的命令来管理 Flink 容器的生命周期,如停止、删除等。
Docker Compose文件定义:
为了方便管理, 将上述的 docker run
命令转换为 docker-compose.yml
文件, 同时增加 sql-client
服务。
version: '3' # 你可以根据需要选择合适的版本 services: jobmanager: image: flink:1.15.0-scala_2.12-java8 container_name: flink-jobmanager ports: - "8081:8081" environment: - | FLINK_PROPERTIES= jobmanager.rpc.address: jobmanager command: jobmanager networks: - flink-network taskmanager: image: flink:1.15.0-scala_2.12-java8 container_name: flink-taskmanager environment: - | FLINK_PROPERTIES= jobmanager.rpc.address: jobmanager taskmanager.numberOfTaskSlots: 2 command: taskmanager depends_on: - jobmanager networks: - flink-network sql-client: image: flink:1.15.0-scala_2.12-java8 container_name: flink-sql-client environment: - | FLINK_PROPERTIES= jobmanager.rpc.address: jobmanager command: bin/sql-client.sh depends_on: - jobmanager networks: - flink-network networks: flink-network: driver: bridge
这个 docker-compose.yml
文件定义了三个服务:jobmanager
和 taskmanager
, sql-client
。每个服务都使用 flink:1.15.0-scala_2.12-java8
镜像,并设置了相应的环境变量和命令来启动 Flink 的相应组件。
请注意以下几点:
container_name
指定了容器的名称。ports
映射了容器端口到宿主机端口。environment
设置了容器的环境变量。command
指定了容器启动时执行的命令。depends_on
确保了 taskmanager
在 jobmanager
之后启动。networks
定义了一个名为 flink-network
的网络,所有服务都在这个网络上。在使用 docker-compose.yml
文件之前,请确保你已经安装了 Docker 和 Docker Compose,并且已经创建了 flink-network
网络(如果尚未创建,Docker Compose 将自动创建它)。
启动Flink集群
要启动 Flink 集群,你需要在包含 docker-compose.yml
文件的目录中运行以下命令:
docker-compose up -d
-d
参数表示在后台运行服务。
运行Flink-SQL客户端:
docker-compose run sql-client
进入flink sql
客户端, 可以创建表并进行相关查询。
停止Flink集群
要停止服务并移除容器,你可以使用:
docker-compose down
Apache Flink Documentation | Apache Flink
Flink SQL Client with Session Cluste
Docker | Apache Flink
聊聊Flink:Docker搭建Flink
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。