Может ли кто-нибудь объяснить мне оптимальную конфигурацию и параллелизм для высокопроизводительных заданий Flink на YARN?
Я использую Cloudera Hadoop с 4 узлами (1 основной узел + 3 рабочих узла) каждый имеет 12 ЦП и память 96 Гб..
Есть несколько свойств пряжи
- yarn.scheduler.maximum-alloc-mb - текущее значение 36Gb
- yarn.nodemanager.resource.memory-mb- текущее значение 36 ГБ
Я обнаружил, что при запуске сеанса пряжи я должен установить флаг -tm
не более 36 ГБ, иначе мое приложение не будет работать с ошибкой The cluster does not have the requested resources for the TaskManagers available! Maximum Memory: <...> Requested: <...>MB . Please check the 'yarn.scheduler.maximum-allocation-mb' and the 'yarn.nodemanager.resource.memory-mb' configuration values
в противном случае.
Я хочу использовать все ресурсы, доступные в кластере, для повышения производительности моих заданий на лету.Итак, мои вопросы:
- Должен ли я установить вышеупомянутые свойства почти на 96 Гб (т.е. 88 Гб) и использовать 1 TaskManager на рабочий узел с 12 слотами (3 TaskManager на 3 узла, всего 36 слотов)?Является ли распространенным использование огромных TaskManager на YARN?
- Или я должен установить
yarn.nodemanager.resource.memory-mb
на 88 Гб и yarn.scheduler.maximum-allocation-mb
на 8 Гб и использовать несколько TaskManager на один рабочий узел?Например, 6 TaskManager на узел с 2 слотами каждый (18 TaskManager на 3 узла с 36 слотами)?Я читал, что не рекомендуется устанавливать слишком высокое значение для yarn.scheduler.maximum-allocation-mb
. - Достаточно ли установить флаг
-jm
на 4 Гб для сеанса мигания?Есть ли какие-либо рекомендации для этого?
Пожалуйста, объясните, как это влияет на сетевой трафик, сбор мусора, использование ЦП и памяти и т. Д.?Какую конфигурацию мне использовать для лучшей производительности?
Спасибо за любую помощь!