我知道sqoop有一个选项,我们可以设置映射器的数量(默认为4)。在实时项目谁决定和如何决定mappers?我们使用默认值还是任意数字? 我知道一些理论上的链接,说明地图集的数量是由你的硬件和其他考虑因素定义的,但它并没有给我一个切实可行的决定方法。 任何有关如何在生产中实际完成的帮助都是非常合适的。
答案 0 :(得分:0)
--num-mappers
是一个提示,Sqoop可能不会完全使用指定的数字。默认情况下,该值为4
。
此参数控制并行度。例如,如果要将数据从数据库导入到Hive表,则映射器的数量指定Sqoop将对数据库进行的并发连接以并行拉取和执行数据传输。一方面,使用更多映射器将导致更多并行性并更快地完成数据传输。另一方面,这将增加数据库的负担。
越来越多的映射器超出某个点可能会使数据库饱和(或者DBA可能已设置了配置的限制),因此性能将停滞不前。
此外,您的群集应该有足够的可用资源来支持您指定的映射器数量。
您可以使用一些不同的值执行一些示例运行,并查看为数据集和环境提供最佳性能的内容。