【发布时间】:2018-08-28 18:20:32
【问题描述】:
我有一个批处理间隔为 2 分钟(可配置)的 spark 流式传输作业。
该作业从 Kafka 主题中读取数据并创建数据集并在其上应用架构并将这些记录插入 Hive 表中。
Spark 作业在 Hive 分区中每个批次间隔创建一个文件,如下所示:
dataset.coalesce(1).write().mode(SaveMode.Append).insertInto(targetEntityName);
现在传入的数据并没有那么大,如果我将批处理持续时间增加到大约 10 分钟左右,那么即使我最终也可能只获得 2-3mb 的数据,这比块大小要小得多。
这是 Spark Streaming 中的预期行为。
我正在寻找有效的方法来进行后处理以合并所有这些小文件并创建一个大文件。
如果有人以前做过,请分享您的想法。
【问题讨论】:
-
这是使用 Hive 合并文件的方法:stackoverflow.com/a/45266244/2700344
-
欢迎使用帖子旁边的复选标记接受答案
标签: apache-spark hadoop hive apache-kafka spark-streaming