• Apache Flink 分布式运行环境


    1.任务和操作链

    • 下面的数据流图有5个子任务执行,因此有五个并行线程。

    2.Job Managers, Task Managers, Clients

    • Job Managers:协调分布式运行,他们安排任务,协调检查点,recovery失败等等。至少有一个Job Managers,一个做leader,其他备用。
    • Task Managers:执行数据流的任务,缓冲和交换数据流。至少要有一个Task Managers。
    • client:客户端不是运行时和程序执行的一部分,但用于r准备和向JobManage发送数据流。客户端可以断开,或者保持联系接收进度报告。

    3.任务槽和资源

    • 每个woker(TaskManager)是一个JVM进程,可以在单独的线程中执行一个或更多的子任务。为了去控制一个worker接受多少任务,worker有了所谓的 task slots(至少一个)。
    • 每个任务槽代表了TaskManager资源的一个固定的子集。
    • 默认情况下,Flink允许子任务共享槽,即使他们是不同的任务的子任务,只要他们来自同样的job。这导致了一个槽可能拥有一个job的整个管道。
    • the slot sharing 有两个好处:一.Flink集群在需要最高并行性的job中,需要完全尽可能多的任务槽,不需要计算一个程序包含多少任务(不同并行)。二.更容易获得更好的资源利用率。
    • 根据经验法则,一个很好的默认任务槽数就是CPU核心数。 使用超线程(超线程),每个插槽需要2个或更多硬件线程环境。

    4.后端状态

    • 在key/values索引中的确切的数据结构的存储取决于所选的后端状态。
    • 除了定义的数据结构保存状态,后端状态还实现了key/values的时间点快照状态和作为一个检查点的一部分存储快照的逻辑。

    5.保存点

    • 保存点是手动触发检查点,以程序的快照,写到后端状态。
    • 在Data Stream API编写的程序从一个保存点可以恢复执行。保存点允许不用丢失任何状态更新程序和Flink集群。
    • 在worker节点上,程序执行期间定期快照并产生检查点。
    • 一个新的检查点产生,旧的就会被抛弃。
    • 保存点类似于这些周期的检查点,除了它们由用户触发和当新的检查点完成时不会自动失效。保存点可以从命令行创建或通过REST API取消。
  • 相关阅读:
    python3第六天
    python3第五天
    python3第四天
    python3 第三天
    python3第二天
    python3(2)
    python3(1)
    网络通信 & 初识socket
    python中包的语法
    模块语法
  • 原文地址:https://www.cnblogs.com/ooffff/p/9418561.html
Copyright © 2020-2023  润新知