映射器执行时间之间的巨大差异

Posted

技术标签:

【中文标题】映射器执行时间之间的巨大差异【英文标题】:huge difference between mappers execution time 【发布时间】:2018-05-02 13:39:28 【问题描述】:

我尝试用 sqoop 导入一个表;我使用 4 个映射器。 问题是映射器之间的执行时间存在巨大差异。 有些不到 10 分钟,有些则超过一小时。 你能解释一下为什么吗?以及如何优化我的导入?

【问题讨论】:

【参考方案1】:

看起来映射器之间的数据分布不均匀可能是造成这种差异的原因。

我认为您可以检查表的主键是什么,以及最小值和最大值的范围是什么。因为根据范围,数据将分布在映射器中。并检查最后两个映射器是否导入了更多数据。

【讨论】:

【参考方案2】:

尝试使用--split-limit 参数来优化您的导入。如果创建的拆分的大小大于此参数中指定的大小,则拆分将调整大小以适应此限制,并且拆分的数量将据此更改。这会影响映射器的实际数量并导致更平衡的映射器。

【讨论】:

参数--split-limit必须取--num-mappers的值? 如果根据提供的--num-mappers 参数计算的拆分大小超过--split-limit 参数,则映射器的实际数量将增加。如果--split-limit参数中指定的值为0或负数,则完全忽略该参数,根据mapper个数计算分割大小。 并且拆分限制仅支持 Integer 和 Date 列? 是的,如文档中所述:This only applies to Integer and Date columns. For date or timestamp fields it is calculated in seconds. 查看答案***.com/a/37389134/7109598。也许解决方案#3可以帮助你

以上是关于映射器执行时间之间的巨大差异的主要内容,如果未能解决你的问题,请参考以下文章

BLoC 的事件映射器未执行,尽管调试表明它应该 8-/

oracle 10g 和 9i 之间巨大的查询执行时间差异

在 reducer 上执行 Hadoop 组合器

从 akka 映射器返回未来

mybatis之映射器(select)

数据映射器通常是啥样的?