Spark Streaming时间表如何在驱动程序和执行程序之间映射任务?

时间:2018-07-06 17:30:16

标签: apache-spark spark-streaming

我使用Apache Spark 2.1和Apache Kafka 0.9。

我有一个Spark Streaming应用程序,该应用程序可运行20个执行程序,并从具有20个分区的Kafka中读取数据。此Spark应用程序仅执行mapflatMap操作。

这是Spark应用程序的作用:

  1. 以15秒的间隔从kafka创建直接流
  2. 执行数据验证
  3. 使用drool执行转换,转换仅是映射。没有减少转换
  4. 使用检入并写入HBase

我想知道执行器和分区是否是1-1映射的,每个执行器是否会独立执行上述步骤并独立地写入HBase,还是将多个执行器中的数据改组并在驱动程序和执行器之间进行操作?

1 个答案:

答案 0 :(得分:1)

火花作业提交只能在执行程序上执行的任务。换句话说,执行程序是唯一可以执行任务的地方。驾驶员要协调任务并安排相应的时间。

话虽如此,我要说的是真的:

  

每个执行者将独立执行上述步骤并独立地写入HBase


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