Есть несколько компромиссов для рассмотрения.
количество поисков, выполняемых при объединении файлов. Если вы увеличите коэффициент слияния слишком высоко, тогда стоимость поиска на диске превысит экономию от параллельного слияния (обратите внимание, что кэш ОС может несколько смягчить это).
Увеличение коэффициента сортировки уменьшает объем данных в каждом разделе. Я считаю, что число io.sort.mb / io.sort.factor для каждого раздела отсортированных данных. Я полагаю, что общее правило заключается в том, чтобы иметь io.sort.mb = 10 * io.sort.factor (я полагаю, что это основано на задержке поиска диска по скорости передачи. Я уверен, что это можно настроить лучше, если это было вашим узким местом. Если вы держите их в соответствии друг с другом, тогда издержки поиска от слияния должны быть сведены к минимуму
Если вы увеличите io.sort.mb, то увеличите нагрузку на память в кластере, оставив меньше памяти для задач. Использование памяти для сортировки - задачи mapper * io.sort.mb - так что вы можете вызвать дополнительные GC, если это слишком много
По существу,
Если вы обнаружите, что сильно обмениваетесь, то есть большая вероятность, что вы установили слишком высокий коэффициент сортировки.
Если соотношение между io.sort.mb и io.sort.factor неправильное, вам может потребоваться изменить io.sort.mb (если у вас есть память) или уменьшить коэффициент сортировки.
Если вы обнаружите, что проводите больше времени в своих средствах сопоставления, чем в средствах восстановления, вы можете увеличить количество задач сопоставления и уменьшить коэффициент сортировки (при условии, что существует нехватка памяти).