调整sqoop导出性能

时间:2017-10-29 13:17:22

标签: oracle hadoop export performance-testing sqoop

我在AWS EMR上使用sqoop从hive导出 2亿条记录到Oracle数据库。我尝试了--batch--num-mappers参数,这些参数已经帮助提高了效果。

调整-Dsqoop.export.statements.per.transaction-Dsqoop.export.records.per.statement会有帮助吗?

期望有关其他调整参数的建议,以提高出口吞吐量。

2 个答案:

答案 0 :(得分:1)

您是否尝试包含--direct选项?我已经看到这会增加Oracle导入的性能,具体取决于您的oracle版本。

答案 1 :(得分:1)

  

调整-Dsqoop.export.statements.per.transaction和   -Dsqoop.export.records.per.statement有帮助吗?

  1. 是。请参考此链接: https://community.hortonworks.com/articles/70258/sqoop-performance-tuning.html

    在某一点之后,停止调整 “sqoop.export.records.per.statement”(正如您可能遇到的那样) java.lang.OutOfMemoryError)并开始调整 “sqoop.export.statements.per.transaction”。

  2. 导出性能取决于并行度,因此增加 映射器的数量,并看看性能如何扩大。

    使用中提到的分区 https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_partitioning 虽然很旧,但在此链接中可以获得相同的体验 https://mail-archives.apache.org/mod_mbox/sqoop-user/201406.mbox/%3CCFCDC24C.A85D%25brenden.cobb@humedica.com%3E

  3. 与上一个答案一样,使用“--direct”使用直接模式 参数
  4. 尝试每种方法并采用适合您的方法。