Я знаю, что у sqoop есть опция, в которой мы можем установить количество картографов (по умолчанию 4). В проектах реального времени кто решает и как определяется отсутствие картографов? Используем ли мы значение по умолчанию или любое произвольное число? Я знаю некоторые теоретические ссылки, в которых говорится, что количество картографов определяется вашим оборудованием и другими соображениями, но это не дает мне практического способа принятия решения. Любая помощь в том, как это на самом деле делается в производстве, была бы очень уместной.
Количество картографов в sqoop
Ответы (1)
--num-mappers
— это подсказка, и Sqoop может не использовать точно указанное число. По умолчанию значение равно 4
.
Этот параметр управляет параллелизмом. Например, если вы импортируете данные из базы данных в таблицу Hive, количество картографов указывает на одновременные подключения, которые Sqoop будет устанавливать к базе данных для параллельного извлечения и выполнения передачи данных. С одной стороны, использование большего количества преобразователей приведет к большему параллелизму и более быстрой передаче данных. С другой стороны, это увеличит нагрузку на базу данных.
Увеличение числа картографов сверх определенного предела, вероятно, приведет к перенасыщению базы данных (или администратор баз данных мог установить настроенное ограничение), поэтому производительность будет стагнировать.
Кроме того, в вашем кластере должно быть достаточно свободных ресурсов для поддержки указанного вами количества картографов.
Вы можете выполнить несколько пробных запусков с несколькими различными значениями и посмотреть, что дает наилучшую производительность для вашего набора данных и среды.