sqoop中有多少默认的映射器和缩减器? (4个映射器,0个减速器)。
如果在--where
中使用--query
或sqoop import
条件,那么会有多少减速器?
在本地群集中,使用0
--where or --query condition
个缩减器
答案 0 :(得分:1)
根据sqoop用户指南,Sqoop从大多数数据库源并行导入数据。您可以使用指定用于执行导入的映射任务(并行进程)的数量
--num-mappers
参数。默认情况下,使用四个任务。好像我们没有做任何聚合任务,reducer任务将为零。有关详细信息http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_free_form_query_imports
答案 1 :(得分:1)
Sqoop工作 仅限地图 。没有减速剂阶段。
例如,sqoop从Mysql导入到具有4个映射器的HDFS将生成4个并发连接并开始获取数据。创建了4个Mappers作业。数据将写入HDFS零件文件。没有减速器阶段。
答案 2 :(得分:1)
减速器是聚合所必需的。从mysql获取数据时,sqoop仅使用由映射器完成的选择查询。
sqoop中没有减速器。 Sqoop只使用映射器,因为它并行导入和导出。每当我们编写任何查询(甚至是诸如count,sum之类的聚合查询)时,这些所有查询都在RDBMS上运行,并且生成的结果由映射器使用选择查询从RDBMS提取,并以hadoop并行方式加载。因此,where子句或任何聚合查询都在RDBMS上运行,因此不需要缩减器。
答案 3 :(得分:0)
对于大多数功能,sqoop是仅地图作业。 即使自由格式查询中存在聚集 该查询将在RDBMS上执行,因此没有减速器。 但是,对于一个特定选项“ --incremental lastmodified”, 如果指定了“ --merge-key”(用于合并,则调用reducer) 新的增量数据以及之前提取的数据)。 在这种情况下,似乎还可以指定减速器的数量 使用如下属性“ 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”属性应在命令选项之前。