Эквивалентно команде top в кластере EMR?

У меня есть кластер EMR с тремя экземплярами, работающий на AWS, и в данный момент он реагирует очень медленно.

При проверке панели инструментов Hadoop на порте 8088 в моем браузере я вижу "Используемая память: 203,5 ГБ" и "Доступная память: 214 ГБ". Я предполагаю, что проблема есть: вся оперативная память занята.

Как я могу узнать, какое приложение работает и накапливает всю оперативную память? Есть ли что-то вроде top команда для кластера? Когда я SSH к главному узлу и проверить top а также free -g, вывод предполагает, что>50% оперативной памяти все еще доступно, и это противоречит выводу веб-отчета о порте 8088.

2 ответа

Решение

Amazon уже предоставляет веб-интерфейс со статистикой по вашему кластеру EMR, просто перейдите по ссылке:

https://console.aws.amazon.com//elasticmapreduce/home

Выберите ссылку кластера в поле Имя, чтобы открыть страницу сведений о кластере для кластера. Используйте каждую вкладку для просмотра соответствующей информации.

Например, вы можете найти информацию о работе для приложения Spark, перейдя в Application history а затем выбрав Application id и расширение линии. Более подробная информация: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-cluster-application-history.html

Во-первых, некоторые подробности о метриках:

Метрики "используемая память" и "доступная память" из пользовательского интерфейса YARN, о которых вы упомянули, указывают на использование памяти внутри процессов YARN, а не на хосты, используемые ResourceManagers YARN.

Например. у вас есть 3 узла в кластере, с более чем 64 ГБ каждый (bc 64 * 3 < 214), скажем, 128 ГБ, однако YARN настроен на использование ~71 ГБ (214 / 3). (Я полагаю, что цифры неверны, но это только пример). Для каждого узла все процессы на нем используют около 50% оперативной памяти, однако ваше приложение использует почти всю оперативную память, доступную для YARN в кластере.

Второе: вполне нормально использовать как можно больше памяти кластера, если только ваш кластер не соответствует вашим потребностям и вы не планируете выполнять дополнительную нагрузку без реконфигурации кластера. Нужно только следить за фактическими показателями хостов внизу, потому что для запуска JVM также требуется свободная оперативная память хоста для накладных расходов, хранения вне хранилища и так далее.

В-третьих, предложения по вашему делу:

кажется, что ваши узлы не очень эффективно используются (загружены). Как правило, 80% использования - это то, что вы хотите достичь для своей инфраструктуры (ОЗУ, ЦП и т. Д.). Таким образом, вы можете рассмотреть возможность перехода на меньшие узлы, но с чуть большим их количеством. Меньшие узлы приводят к меньшему объему данных, более высокому параллелизму и, возможно, ускорению обработки за меньшие деньги.

Другие вопросы по тегам