Docker摆设常见应用之大数据实时盘算引擎Flink

打印 上一主题 下一主题

主题 517|帖子 517|积分 1551


Flink 简介

Apache Flink 是一个开源的分布式流批一体化的盘算框架,它提供了一个流盘算引擎,能够处理有界和无界的数据流。Flink 的焦点上风在于其高吞吐量、低延迟的处理能力,以及强大的状态管理和容错机制。它支持变乱驱动的应用和复杂的变乱处理(CEP),而且可以处理批处理使命。Flink 的设计目标是提供一个易于使用、机动且高性能的数据处理平台。
Flink 的一些关键特性包括:


  • 高吞吐量和低延迟:能够处理大规模的数据流,同时保持毫秒级的处理延迟。
  • 状态管理和容错:提供了强大的状态管理功能,允许在发生故障时从检查点或保存点规复作业。
  • 变乱时间处理:支持基于变乱时间的数据处理,可以处理乱序变乱和长时间运行的盘算。
  • CEP(复杂变乱处理):可以辨认和处理复杂的变乱模式,这对于监控和警报等应用非常有用。
  • 批流一体:同一了批处理和流处理,使得开辟人员可以使用相同的 API 来编写批处理和流处理作业。
  • 可伸缩性:可以在小型集群到大型集群中运行,支持水平伸缩以顺应不同的负载需求。
  • 生态系统:拥有丰富的毗连器和库,可以与各种数据源和数据存储系统集成。
  • 多语言支持:提供了 Java 和 Scala API,而且通过 DataStream API 支持 Python 和其他语言的集成。
在 Docker 中摆设 Flink 是一种盛行的实践,由于它简化了环境的配置和管理工作。以下是使用 Docker 摆设 Flink 的基本步骤:
Docker 摆设


  • 安装 Docker:确保你的系统上已经安装了 Docker,可以从 Docker 官网下载并安装。
  • 创建 Docker 网络:为了使 Flink 组件能够相互通信,必要创建一个 Docker 网络。
    1. docker network create flink-network
    复制代码
  • 拉取 Flink 镜像:从 Docker Hub 拉取官方的 Flink 镜像。
    1. docker pull flink:1.15.0-scala_2.12-java8
    复制代码
  • 启动 Flink 组件:使用 Docker 下令启动 Flink 的 JobManager 和 TaskManager 组件,并加入到创建的网络中。
    1. 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
    2. 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 Compose文件定义:
    为了方便管理, 将上述的 docker run 下令转换为 docker-compose.yml 文件, 同时增长 sql-client服务。
    1. version: '3'  # 你可以根据需要选择合适的版本
    2.         services:
    3.           jobmanager:
    4.             image: flink:1.15.0-scala_2.12-java8
    5.             container_name: flink-jobmanager
    6.             ports:
    7.               - "8081:8081"
    8.             environment:
    9.               - |
    10.                 FLINK_PROPERTIES=
    11.                 jobmanager.rpc.address: jobmanager
    12.             command: jobmanager
    13.             networks:
    14.               - flink-network
    15.        
    16.           taskmanager:
    17.             image: flink:1.15.0-scala_2.12-java8
    18.             container_name: flink-taskmanager
    19.             environment:
    20.                - |
    21.                 FLINK_PROPERTIES=
    22.                 jobmanager.rpc.address: jobmanager
    23.                 taskmanager.numberOfTaskSlots: 2
    24.             command: taskmanager
    25.             depends_on:
    26.               - jobmanager
    27.             networks:
    28.               - flink-network
    29.           sql-client:
    30.             image: flink:1.15.0-scala_2.12-java8
    31.             container_name: flink-sql-client
    32.             environment:
    33.                - |
    34.                 FLINK_PROPERTIES=
    35.                 jobmanager.rpc.address: jobmanager
    36.             command: bin/sql-client.sh
    37.             depends_on:
    38.               - jobmanager
    39.             networks:
    40.               - flink-network
    41.        
    42.         networks:
    43.           flink-network:
    44.             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 文件的目次中运行以下下令:
    1. docker-compose up -d
    复制代码
    -d 参数表示在背景运行服务。
  • 运行Flink-SQL客户端:
    1. docker-compose run sql-client
    复制代码
    进入flink sql客户端, 可以创建表并举行相关查询。
  • 停止Flink集群
    要停止服务并移除容器,你可以使用:
    1. docker-compose down
    复制代码
参考文章

Apache Flink Documentation | Apache Flink
Flink SQL Client with Session Cluste
Docker | Apache Flink
聊聊Flink:Docker搭建Flink

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表