我正在从火花流应用程序中的kafka读取数据并执行两项操作
我想确保dstream中的每个rdd 插入hbase表A将在hbase表B上的更新操作之前发生(对于每个rdd顺序发生以上两个动作)
如何在火花流媒体应用中实现这一目标
答案 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将按顺序在同一阶段执行。