sqoop导入可以执行多少max mapper

niwlg2el  于 2021-06-03  发布在  Sqoop
关注(0)|答案(3)|浏览(377)

在sqoop导入中最多可以执行多少Map器。另外,在使用sqoop导入时,是否存在运行reducer的情况。

suzh9iv8

suzh9iv81#

1.sqoop导入中最多可以执行多少Map器?
增加Map器的数量将导致更高数量的并发数据传输任务,“这可以”导致更快的作业完成。
它不会总是导致更快的工作完成。在增加Map器数量的同时,有一个点会使数据库完全饱和。增加Map绘制者的数量超过这一点不会导致更快的工作完成;事实上,它会产生相反的效果,因为您的数据库服务器花费更多的时间进行上下文切换,而不是提供数据。
Map器的最佳数量取决于许多变量:
1.数据库类型。
2.用于数据库服务器的硬件。
对数据库需要服务的其他请求的影响。
从少量的Map器开始,为您的环境和用例找到最佳的并行度。
2.另外,在使用sqoop导入时,是否存在运行reducer的情况。
聚合需要缩减器。sqoop的缩减器数量为0,因为它只是一个运行仅Map作业的作业,该作业将数据转储到hdfs中。我们没有聚合任何东西。

h5qlskok

h5qlskok2#

sqoop作业使用 4 默认情况下Map任务。可以通过传递 -m 或者 --num-mappers 对工作的争论。对于SqOOP设置的Map器的数量没有最大限制,但与数据库的并发连接的总数是要考虑的因素。阅读更多关于在sqoop中控制并行性的信息。
如果表没有定义主键 --split-by 参数未提供给sqoop命令,Map器的数量应显式设置为 1 .
sqoop作业没有任何reduce任务。

fcwjkofz

fcwjkofz3#

最大Map器数
它可以是任何数字,但应该根据数据、资源和所需的并行性进行设置。Map器越多并不意味着性能越高。
有减速器运转的情况吗
是的-有特殊情况,当sqoop作业可能有减速器时。
这里记录了这样一种情况。

sqoop export \
    -Dmapred.reduce.tasks=2
    -Dpgbulkload.bin="/usr/local/bin/pg_bulkload" \
    -Dpgbulkload.input.field.delim=$'\t' \
    -Dpgbulkload.check.constraints="YES" \
    -Dpgbulkload.parse.errors="INFINITE" \
    -Dpgbulkload.duplicate.errors="INFINITE" \
    --connect jdbc:postgresql://pgsql.example.net:5432/sqooptest \
    --connection-manager org.apache.sqoop.manager.PGBulkloadManager \
    --table test --username sqooptest --export-dir=/test -m 2
``` `mapred.reduce.tasks` -用于转移的reduce任务数。默认值为1。每个任务都在单个事务中进行转移。

相关问题