mapreduce—sqoop中的还原数

4c8rllxm  于 2021-06-03  发布在  Sqoop
关注(0)|答案(4)|浏览(300)

sqoop中有多少默认Map器和还原器(4-Map器,0-还原器)。
如果使用 --where 或者 --query 条件 sqoop import 那么会有多少减速器呢?
在本地集群中显示 0 使用后的减速器 --where or --query condition

vwkv1x7d

vwkv1x7d1#

sqoop作业仅用于Map。没有还原相。
例如,使用4个Map器从mysql导入到hdfs的sqoop将生成4个并发连接并开始获取数据。创建4个Map器作业。数据将写入hdfs部件文件。没有减速器级。

nimxete2

nimxete22#

对于大多数函数,sqoop是只Map的作业。即使自由形式查询中存在聚合,该查询也将在rdbms上执行,因此没有缩减器。但是,对于一个特定的选项--incremental lastmodified,如果指定了--merge key(用于将新的增量数据与先前提取的数据合并),则调用reducer。在本例中,似乎有一种方法可以使用属性“mapreduce.job.reduces”来指定reducer的数量,如下所示。

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”属性。

ifmq2ha2

ifmq2ha23#

聚合需要还原剂。当从mysql获取数据时,sqoop只使用由Map器完成的select查询。
sqoop中没有减速机。sqoop只在并行导入和导出时使用Map器。每当我们编写任何查询(甚至是聚合查询,如count、sum)时,这些查询都在rdbms上运行,生成的结果由Map器使用select查询从rdbms获取,并并行加载到hadoop上。因此,where子句或任何聚合查询都在rdbms上运行,因此不需要缩减器。

gblwokeq

gblwokeq4#

根据sqoop用户指南,sqoop从大多数数据库源并行导入数据。可以通过使用指定要用于执行导入的Map任务(并行进程)的数量 --num-mappers  争论。默认情况下,使用四个任务。如果我们不做任何聚合任务,那么reducer任务将为零。更多细节http://sqoop.apache.org/docs/1.4.6/sqoopuserguide.html#_free_form_query_imports

相关问题