带有多个主题的流式Kafka:一个输入流还是多个输入流?

时间:2019-04-11 13:38:05

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

我已经将postgres wallog流式传输到kafka,每个表都有一个主题。主题架构如下(嵌套数据键与每个主题不同):

topic1: { tablename, data{id,name,age,created_at} }
topic2: { tablename, data{id,school,address,created_at} }

现在,我想使用spark将它们保存到其他hdfs文件(表名作为文件名)。

使用多输入流方式很容易。但是我发现我必须将并发作业的数量设置为主题数,否则它将无法正常工作。但是我有大约一百个主题。有问题吗?

我还尝试了以下一种输入流方法

stream.foreachRDD(rdd => {
    rdd.foreachPartition(partition => {
        val ds = partition.toList.toDS
        val df = spark.read.json(ds)
        df.write.mode("append").parquet("the_file_path")    
    })
})

但是我这样遇到了很多问题。有人可以在这里提出几点意见吗?

对使用一个流还是多个流有任何想法吗?

0 个答案:

没有答案