在https://gobblin.readthedocs.io/en/latest/case-studies/kafka-hdfs-ingestion/#grouping-gobblin文档的workunits部分我们可以阅读关于单级打包的以下描述
单级打包器使用最差拟合递减方法将工作单元分配给Map器:每个工作单元都分配给当前负载最轻的Map器。这种方法很好地平衡了Map器。但是,同一主题的多个分区通常分配给不同的Map器。这可能导致两个问题:(1)许多小的输出文件:如果一个主题的多个分区被分配给不同的Map器,它们就不能共享输出文件(2) 任务开销:当一个主题的多个分区分配给不同的Map器时,会为每个分区创建一个任务,这可能会导致大量的任务和很大的开销。
第二个开销似乎与我们在其他部分所能读到的相反。再高一段我们就可以红了
对于每个分区,在确定第一个和最后一个偏移量之后,将创建一个工作单元。
这里呢https://gobblin.readthedocs.io/en/latest/gobblin-architecture/#gobblin-第3点的工作流程:
从源给定的工作单元集,作业创建一组任务。任务是workunit的运行时对应项,workunit表示工作的逻辑单元。通常,每个工作单元创建一个任务
因此,据我所知,Kafka分区总是与任务相关的,除非工作单元被分组在一起(那么我们有一个任务用于许多工作单元,因此有许多分区)
我是否理解这里有什么不对劲,或者单级 Package 中的二次开销毫无意义?
暂无答案!
目前还没有任何答案,快来回答吧!