按顺序执行火花流操作

Executing spark streaming actions sequentially

我正在 spark 流应用程序中从 kafka 读取数据并执行两个操作

  1. 将 dstreams 插入 hbase table A
  2. 更新另一个hbase table B

我想确保对于 dstream 中的每个 rdd Insert into hbase table A 将在 hbase table B 的更新操作之前发生(以上两个操作对每个 rdd 按顺序发生)

如何在 Spark Streaming 应用程序中实现这一点

据我所知,您可以通过以下方式执行上述任务

这将按顺序执行

 recordStream.foreachRDD{rdd => { //this will be Dstream RDD Records from kafka
 val record = rdd.map(line => line.split("\|")).collect 
 record.foreach {recordRDD => { //Write the code for Insert in hbase}
 record.foreach {recordRDD => { //Write the code for Update in hbase}

希望对您有所帮助

在单个 rdd.foreach() 中按顺序更新两个表。如果您已正确处理异常,它将按顺序执行。

此行为得到以下事实的支持:其 DAG 将在同一阶段按顺序执行。