在Sqoop导入中可以执行多少个mapper。此外,在使用sqoop导入时,有任何减速器正在运行的情况。
答案 0 :(得分:2)
1. 在Sqoop导入中可以执行多少个mapper?
增加映射器的数量将导致更高的数量 并发数据传输任务,'可以'导致更快的工作 完成。
这并不总能带来更快的工作完成。虽然增加了 映射器的数量,有一点你将完全饱和 你的数据库。增加映射器的数量超过这一点 不会导致更快完成工作;事实上,它会有 相反的效果,因为您的数据库服务器花费更多时间做上下文 切换而不是提供数据。
最佳映射器数量取决于许多变量:
1.数据库类型。
2.用于数据库服务器的硬件。
- 对数据库需要提供的其他请求的影响。
醇>从少量地图制作器开始,为您找到最佳选择 您的环境和用例的并行度。
2. 此外,使用sqoop导入时,还是有减速器的情况 运行强>
聚合需要减速器.sqoop的减速器数量为0, 因为它只是一个运行MAP转储作业的作业 HDFS。我们没有聚合任何东西。
答案 1 :(得分:1)
最大映射器数
它可以是任何数字,但应根据数据,资源和所需的并行性进行设置。更多的mapper并不意味着更多的性能。
是否有任何减速器正在运行的情况
是 - 有特殊情况,当sqoop作业可能有减速器时。
其中一个条件是documented here。
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
- 暂存的减少任务数。该 默认值为1.每个任务都在一个事务中进行暂存。
答案 2 :(得分:0)
默认情况下,Sqoop作业使用 4
地图任务。可以通过将-m
或--num-mappers
参数传递给作业来修改它。 Sqoop设置的映射器数量没有最大限制,但是与数据库的并发连接总数是需要考虑的因素。阅读更多关于在Sqoop here中控制并行性的信息。
如果表没有定义主键或者为sqoop命令提供了--split-by
参数,则应将映射器的数量明确设置为 1
强>
Sqoop职位没有任何减少任务。