在Gobblin文档的https://gobblin.readthedocs.io/en/latest/case-studies/Kafka-HDFS-Ingestion/#grouping-workunits部分,我们可以阅读以下desc的单级打包
单级打包程序使用最适合降低的方法将工作单元分配给映射器:每个工作单元转到当前具有最轻负载的映射器。这种方法很好地平衡了映射器。但是,通常将同一主题的多个分区分配给不同的映射器。这可能会导致两个问题:(1)许多小输出文件:如果某个主题的多个分区被分配给不同的映射器,则它们无法共享输出文件。 (2)任务开销:当一个主题的多个分区被分配给不同的映射器时,会为每个分区创建一个任务,这可能会导致大量任务和大量开销。
第二个开销似乎与我们在其他部分可以阅读的内容相矛盾。 我们可以更高一个段落
对于每个分区,在确定第一个和最后一个偏移之后,将创建一个工作单元。
和第3点的https://gobblin.readthedocs.io/en/latest/Gobblin-Architecture/#gobblin-job-flow:
从Source给出的WorkUnits集合中,作业创建了一组任务。任务是WorkUnit的运行时对应物,它代表逻辑工作单元。通常,每个WorkUnit创建一个任务
因此,根据我的理解,除非将WorkUnits组合在一起(然后我们为许多WorkUnits有一个任务,因此很多分区),所以总是有任务与Kafka分区相关联。
我是否理解这里的错误或单级包装的第二个开销是不是没有感觉?