Sqoop进口。可以执行多少个max mapper

时间:2017-04-04 06:26:06

标签: sqoop

在Sqoop导入中可以执行多少个mapper。此外,在使用sqoop导入时,有任何减速器正在运行的情况。

3 个答案:

答案 0 :(得分:2)

1. 在Sqoop导入中可以执行多少个mapper?

  
    

增加映射器的数量将导致更高的数量     并发数据传输任务,'可以'导致更快的工作     完成。

         

这并不总能带来更快的工作完成。虽然增加了     映射器的数量,有一点你将完全饱和     你的数据库。增加映射器的数量超过这一点     不会导致更快完成工作;事实上,它会有     相反的效果,因为您的数据库服务器花费更多时间做上下文     切换而不是提供数据。

         

最佳映射器数量取决于许多变量:

         

1.数据库类型。

         

2.用于数据库服务器的硬件。

  
     
      
  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职位没有任何减少任务。