【问题标题】:Sqoop import performance improvementSqoop 导入性能提升
【发布时间】:2018-12-22 15:25:44
【问题描述】:

每当我尝试将大量数据从 Teradata 导入 Hive 时.. 它会在最后两个/三个映射器上被击中超过 2 小时.. 我正在使用 8 个映射器和 --split-by 有什么方法可以提高性能吗?由于我在生产中,所以我使用的映射器数量较少。请帮助

【问题讨论】:

  • 如果它在最后两个/三个映射器上被击中超过 2 小时,那么您的拆分列分布不均匀。这个答案解释了会发生什么:stackoverflow.com/a/37389134/2700344

标签: hadoop hive teradata sqoop


【解决方案1】:

随着映射器的增加,您还可以通过增加提取大小来提高性能。 在 Sqoop 命令中使用以下语法:

--fetch-size=<n> 其中<n>表示Sqoop 一次必须获取的条目数。默认值为 1000。您可以将其设置为 10000 或更多。

注意:根据需要读取的数据量增加 fetch-size 参数的值。根据可用内存和带宽设置值。

还请在 Sqoop 命令中增加堆大小以避免出现堆异常或内存不足错误等内存问题。在 Sqoop 命令中使用以下属性增加内存

-Dmapreduce.map.memory.mb=8192 -Dmapreduce.map.java.opts=-Xmx7200m

【讨论】:

    猜你喜欢
    • 2011-03-31
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    相关资源
    最近更新 更多