• Spark的Master、Worker、Dirver和Executor,对比Flink的Jobmanager、Taskmanager、Slot异同


    首先,我们来了解一下Spark和Flink的基本概念。Spark是一个快速、通用的大规模数据处理引擎,而Flink是一个流式和批处理的开源数据处理框架。它们都用于处理大量数据,但在架构和组件方面有所不同。接下来,我们将用通俗易懂的语言和比喻来解释它们的异同。

    1. Master vs Jobmanager

    Spark中的Master负责管理整个集群的资源分配和任务调度。它就像一个公司的CEO,负责制定战略和协调各个部门的工作。而Flink中的Jobmanager也负责任务的调度和资源管理,但它更像是一个项目经理,负责具体项目的执行和监控。

    1. Worker vs Taskmanager

    Spark中的Worker负责执行具体的任务,就像公司的员工,按照CEO的指示完成各自的工作。而Flink中的Taskmanager也负责执行任务,但它更像是一个团队,成员之间可以共享资源,协同完成任务。

    1. Driver vs Slot

    Spark中的Driver负责协调任务的执行,收集结果并返回给客户端。它就像一个出租车司机,负责接送乘客(任务)到达目的地。而Flink中的Slot是Taskmanager的资源单元,可以理解为一台计算机的一个CPU核心。它就像一个工厂的机床,用于加工生产产品(任务)。

    相同之处:

    1. 两者的Master/Jobmanager都负责任务的调度和资源管理。
    2. 两者的Worker/Taskmanager都负责执行具体的任务。
    3. Driver和Taskmanager:在执行用户程序时,都需要接收用户的代码并将其转换为可执行的任务。

    不同之处:

    1. Spark的Driver是一个独立的进程,负责协调任务的执行;而Flink没有Driver的概念,任务直接在Taskmanager中执行。
    2. Flink的Slot是资源分配的单位,可以共享资源;而Spark中没有Slot的概念,资源分配是通过Master来实现的。
    3. Spark的Executor一旦启动就会占用固定的资源直到应用程序结束,而Flink的Taskmanager可以通过Slot动态地分配和释放资源,这使得Flink在资源利用上更加灵活。
    4. Flink中的Slot是一个独特的概念,它允许更细粒度的资源管理和任务并发。而Spark的Executor则是单一的执行单元,没有类似Slot的细分。
      Spark的Driver是运行在客户端机器上的一个进程,负责将用户程序转换为RDD(弹性分布式数据集)的操作序列,而Flink的Jobmanager则是负责整个作业的生命周期管理。
  • 相关阅读:
    ElasticSearch 创建索引超时(ReadTimeoutError)
    java 中的注释
    【软件STM32cubeIDE下STM32H743xx使用:看门狗iwdg+复位标志位-基础样例】
    手游平台开发怎么做?
    内网穿透实现Windows远程桌面访问Ubuntu,简单高效的远程桌面解决方案
    Visual Studio 2019 C# 断点调试代码内存窗口显示无法计算表达式的解决问题
    【无标题】
    学习@Transaction异常自动回滚以及手动回滚和回滚部分SQL服务
    24点游戏题库算法分析
    【GNN】2022 G-Mixup: Graph Data Augmentation for Graph Classification
  • 原文地址:https://blog.csdn.net/linweidong/article/details/138172100