gpt4 book ai didi

hadoop - 在用 Java 编写 MR 代码时,如何决定何时使用 Map-Side Join 或 Reduce-Side?

转载 作者:可可西里 更新时间:2023-11-01 14:19:35 26 4
gpt4 key购买 nike

在用 Java 编写 MR 代码时,如何决定何时使用 Map-Side Join 或 Reduce-Side?

最佳答案

Map side join 在数据到达Map 之前执行join。在 map 端加入数据之前, map 功能需要一个强大的先决条件。这两种方法都有一些优点和缺点。 Map side join 与 reduce side 相比效率更高,但它需要严格的格式。

先决条件:

  • 数据应以特定方式进行分区和排序。
  • 每个输入数据都应划分为相同数量的分区。
  • 必须使用相同的键排序。
  • 特定键的所有记录必须位于同一分区中。

Reduce side join 也称为 Repartitioned join 或 Repartitioned sort merge join,也是最常用的连接类型。它必须经过排序和洗牌阶段,这会产生网络开销。Reduce side join 使用的术语很少,例如数据源、标签和组 key ,让我们熟悉它。

  • Data Source指的是数据源文件,可能取自RDBMS
  • Tag 将用于标记每条记录的源名称,以便可以在任何给定时间点识别它的源,无论它处于 map/reduce 阶段。为什么需要它稍后会介绍。
  • 组键是指用作两个数据源之间的连接键的列。

正如我们所知,我们将在 reduce 端加入这些数据,我们必须以一种可用于在 reduce 阶段加入的方式进行准备。让我们看看需要执行哪些步骤。

有关更多信息,请查看此链接: http://hadoopinterviews.com/map-side-join-reduce-side-join/

关于hadoop - 在用 Java 编写 MR 代码时,如何决定何时使用 Map-Side Join 或 Reduce-Side?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29734690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com