Gobblin为Kafka来源分组工作单位

时间:2017-04-20 14:50:19

标签: apache-kafka linkedin goblin

在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分区相关联。

我是否理解这里的错误或单级包装的第二个开销是不是没有感觉?

0 个答案:

没有答案