database - Sqoop 是否使用 Reducer?

标签 database hadoop mapreduce sqoop

如果在使用 --query 参数给出的选择查询中执行连接/聚合,Sqoop 是否运行 reducer?或者在 Sqoop 中是否存在同时运行映射器和缩减器的情况?

Documentation指定每个映射任务都需要执行查询的副本,结果按 Sqoop 推断的边界条件进行分区。

$ sqoop import \
  --query 'SELECT a.*, b.* FROM a JOIN b on (a.id == b.id) WHERE $CONDITIONS' \
  --split-by a.id --target-dir /user/foo/joinresults

在上面的示例中,JOIN 如何在首先使用 $CONDITIONS 对表进行分区的地方发生?

最佳答案

Join/Computation 将在 RDBMS 上执行,其结果将由 mapper 使用以传输到 HDFS。 不涉及 reducer

使用--query参数,你需要在--split-by参数中指定应该用于切片的列 您的数据进入多个并行 map ​​任务。该参数通常自动默认为 主表的主键

$CONDITIONS 将自动用指定要传输的数据切片的生成条件替换此占位符

关于database - Sqoop 是否使用 Reducer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49511479/

相关文章:

database - SAS:合并两个具有相同列的表,同时删除空值

database - 系统设计: whether to normalize the departments or not

hadoop - 如何使用 Pig 将不同的值存储在同一键的列表中

java - MapReduce 程序中的洗牌步骤是否与映射并行运行?

Java Hadoop MapReduce 多值

sql - 如何在sql server中获取本周的每日数据

java - 使用 MySQL 数据库的 SQL 错误

java - Hadoop:在运行时更改 reducer 的数量

hadoop - 无法在 yarn 中启动资源管理器

java - 从 MapReduce 映射器中的输入文件获取唯一行号