sqoop中reducer个数
Number of reducer in sqoop
sqoop 中默认有多少映射器和缩减器? (4 个映射器,0 个缩减器)。
如果在 sqoop import
中使用 --where
或 --query
条件,那么会有多少个 reducer?
在本地集群中,在使用 --where or --query condition
后显示 0
个减速器
根据 sqoop 用户指南,Sqoop 从大多数数据库源并行导入数据。您可以指定用于执行导入的映射任务(并行进程)的数量
--num-mappers
参数。默认情况下,使用四个任务。就好像我们没有做任何聚合任务一样,reducer 任务将为零。更多详情 http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_free_form_query_imports
Sqoop 作业 仅限地图。没有reducer阶段。
例如,sqoop从Mysql导入具有4个映射器的HDFS将产生4个并发连接并开始获取数据。创建了 4 个映射器作业。数据将写入 HDFS 部分文件。没有减速器阶段。
聚合需要减速器。从 mysql 获取数据时,sqoop 仅使用映射器完成的 select 查询。
sqoop 中没有减速器。 Sqoop 只使用映射器,因为它进行并行导入和导出。每当我们编写任何查询(甚至是聚合查询,例如 count 和 sum)时,这些所有查询都在 RDBMS 上 运行 并且生成的结果由映射器使用 select 查询从 RDBMS 获取并加载到 hadoop 上平行地。因此,RDBMS 上的 where 子句或任何聚合查询 运行s,因此不需要缩减器。
对于大多数功能,sqoop 是一项 map-only 工作。
即使 free-form 查询中有聚合
该查询将在 RDBMS 上执行,因此没有缩减器。
但是对于一个特定选项“--incremental lastmodified”,
如果指定了“--merge-key”(用于合并
新的增量数据与先前提取的数据)。
在这种情况下,似乎也有一种方法可以指定减速器的数量
使用 属性 "mapreduce.job.reduces" 如下。
sqoop import -Dmapreduce.job.reduces=3 --incremental lastmodified --connect jdbc:mysql://localhost/testdb --table employee --username root --password cloudera --target-dir /user/cloudera/SqoopImport --check-column trans_dt --last-value "2019-07-05 00:00:00" --merge-key emp_id
“-D”属性应该在命令选项之前。
sqoop 中默认有多少映射器和缩减器? (4 个映射器,0 个缩减器)。
如果在 sqoop import
中使用 --where
或 --query
条件,那么会有多少个 reducer?
在本地集群中,在使用 --where or --query condition
0
个减速器
根据 sqoop 用户指南,Sqoop 从大多数数据库源并行导入数据。您可以指定用于执行导入的映射任务(并行进程)的数量
--num-mappers
参数。默认情况下,使用四个任务。就好像我们没有做任何聚合任务一样,reducer 任务将为零。更多详情 http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_free_form_query_imports
Sqoop 作业 仅限地图。没有reducer阶段。
例如,sqoop从Mysql导入具有4个映射器的HDFS将产生4个并发连接并开始获取数据。创建了 4 个映射器作业。数据将写入 HDFS 部分文件。没有减速器阶段。
聚合需要减速器。从 mysql 获取数据时,sqoop 仅使用映射器完成的 select 查询。
sqoop 中没有减速器。 Sqoop 只使用映射器,因为它进行并行导入和导出。每当我们编写任何查询(甚至是聚合查询,例如 count 和 sum)时,这些所有查询都在 RDBMS 上 运行 并且生成的结果由映射器使用 select 查询从 RDBMS 获取并加载到 hadoop 上平行地。因此,RDBMS 上的 where 子句或任何聚合查询 运行s,因此不需要缩减器。
对于大多数功能,sqoop 是一项 map-only 工作。 即使 free-form 查询中有聚合 该查询将在 RDBMS 上执行,因此没有缩减器。 但是对于一个特定选项“--incremental lastmodified”, 如果指定了“--merge-key”(用于合并 新的增量数据与先前提取的数据)。 在这种情况下,似乎也有一种方法可以指定减速器的数量 使用 属性 "mapreduce.job.reduces" 如下。
sqoop import -Dmapreduce.job.reduces=3 --incremental lastmodified --connect jdbc:mysql://localhost/testdb --table employee --username root --password cloudera --target-dir /user/cloudera/SqoopImport --check-column trans_dt --last-value "2019-07-05 00:00:00" --merge-key emp_id
“-D”属性应该在命令选项之前。