我使用Apache Spark 2.1和Apache Kafka 0.9。
我有一个Spark Streaming应用程序,该应用程序可运行20个执行程序,并从具有20个分区的Kafka中读取数据。此Spark应用程序仅执行map
和flatMap
操作。
这是Spark应用程序的作用:
我想知道执行器和分区是否是1-1映射的,每个执行器是否会独立执行上述步骤并独立地写入HBase,还是将多个执行器中的数据改组并在驱动程序和执行器之间进行操作?
答案 0 :(得分:1)
火花作业提交只能在执行程序上执行的任务。换句话说,执行程序是唯一可以执行任务的地方。驾驶员要协调任务并安排相应的时间。
话虽如此,我要说的是真的:
每个执行者将独立执行上述步骤并独立地写入HBase
顺便说一句,答案与所使用的Spark版本无关。一直都是这样(并且看不出它会改变甚至应该改变的任何原因)。