我知道sqoop有一个选项,我们可以设置Map器的数量(默认值是4)。在实时项目中,谁来决定Map者的数量,以及如何决定Map者的数量?我们使用默认值还是任意数字?我知道一些理论上的联系说,Map器的数量是由您的硬件和其他考虑因素,但它没有给我一个实际的方式来决定。任何关于如何在生产中实际完成的帮助都是非常合适的。
44u64gxh1#
这个 --num-mappers 是一个提示,sqoop可能不完全使用指定的数字。默认情况下,该值为 4 .此参数控制并行度。例如,如果要将数据从数据库导入配置单元表,则Map器的数目指定sqoop将对数据库进行并发连接,以并行地拉取和执行数据传输。一方面,使用更多的Map器将导致更多的并行性和更快地完成数据传输。另一方面,这会增加数据库的负载。超过某一点的Map器数量的增加可能会使数据库饱和(或者dba可能已经设置了配置的限制),因此性能将停滞不前。另外,集群应该有足够的可用资源来支持指定的Map器数量。您可以使用几个不同的值来执行一些示例运行,并查看什么为您的数据集和环境提供了最佳性能。
--num-mappers
4
1条答案
按热度按时间44u64gxh1#
这个
--num-mappers
是一个提示,sqoop可能不完全使用指定的数字。默认情况下,该值为4
.此参数控制并行度。例如,如果要将数据从数据库导入配置单元表,则Map器的数目指定sqoop将对数据库进行并发连接,以并行地拉取和执行数据传输。一方面,使用更多的Map器将导致更多的并行性和更快地完成数据传输。另一方面,这会增加数据库的负载。
超过某一点的Map器数量的增加可能会使数据库饱和(或者dba可能已经设置了配置的限制),因此性能将停滞不前。
另外,集群应该有足够的可用资源来支持指定的Map器数量。
您可以使用几个不同的值来执行一些示例运行,并查看什么为您的数据集和环境提供了最佳性能。