按顺序执行火花流动作

时间:2017-05-30 09:57:13

标签: apache-spark hbase apache-kafka spark-streaming

我正在从火花流应用程序中的kafka读取数据并执行两项操作

  1. 将dstreams插入hbase表A
  2. 更新另一个hbase表B
  3. 我想确保dstream中的每个rdd 插入hbase表A将在hbase表B上的更新操作之前发生(对于每个rdd顺序发生以上两个动作)

    如何在火花流媒体应用中实现这一目标

2 个答案:

答案 0 :(得分:2)

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

这将按顺序执行

 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}

希望这有助于

答案 1 :(得分:0)

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

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