Apache spark Spark Streaming schedule如何在驱动程序和执行程序之间映射任务?

Apache spark Spark Streaming schedule如何在驱动程序和执行程序之间映射任务?,apache-spark,spark-streaming,Apache Spark,Spark Streaming,我使用ApacheSpark2.1和ApacheKafka0.9 我有一个Spark流媒体应用程序,运行时有20个执行器,读取Kafka中有20个分区的数据。此Spark应用程序仅执行map和flatMap操作 以下是Spark应用程序的功能: 从卡夫卡创建一个间隔为15秒的直接流 执行数据验证 使用drool执行仅映射的转换。无reduce变换 使用check和put写入HBase 我想知道执行器和分区是否是1-1映射的,每个执行器是否独立地执行上述步骤并独立地写入HBase,或者数据将在多个

我使用ApacheSpark2.1和ApacheKafka0.9

我有一个Spark流媒体应用程序,运行时有20个执行器,读取Kafka中有20个分区的数据。此Spark应用程序仅执行
map
flatMap
操作

以下是Spark应用程序的功能:

  • 从卡夫卡创建一个间隔为15秒的直接流
  • 执行数据验证
  • 使用drool执行仅映射的转换。无reduce变换
  • 使用check和put写入HBase

  • 我想知道执行器和分区是否是1-1映射的,每个执行器是否独立地执行上述步骤并独立地写入HBase,或者数据将在多个执行器中被洗牌,操作将在驱动程序和执行器之间发生?

    Spark jobs提交只能在执行器上执行的任务。换句话说,执行者是唯一可以执行任务的地方。驾驶员负责协调任务并相应地安排任务

    话虽如此,我认为以下是正确的:

    每个执行者是否会独立执行上述步骤并独立向HBase写入


    顺便说一句,答案与使用的Spark版本无关。它一直都是这样的(而且看不出有任何理由它会或甚至应该改变)