Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Узнайте, как получить доступ к журналам для приложений Apache Hadoop YARN (еще один переговорщик ресурсов) в кластере Apache Hadoop в Azure HDInsight.
Что такое Apache YARN?
YARN поддерживает несколько моделей программирования (Apache Hadoop MapReduce, являющихся одним из них) путем отмены управления ресурсами от планирования и мониторинга приложений. YARN использует глобальный ResourceManager
(RM), на узел-работник NodeManagers (NMs) и на приложение ApplicationMasters (AMs). Каждый диспетчер приложения (AM) согласовывает ресурсы (ЦП, память, диск, сеть) для запуска вашего приложения с Диспетчером ресурсов (RM). RM работает с NM для предоставления этих ресурсов, которые выдаются в виде контейнеров. AM отвечает за отслеживание прогресса контейнеров, назначенных ему RM. Приложению может потребоваться множество контейнеров в зависимости от характера приложения.
Каждое приложение может состоять из нескольких попыток приложения. Если приложение завершается ошибкой, его можно повторить как новую попытку. Каждая попытка выполняется в контейнере. В смысле контейнер предоставляет контекст для базовой единицы работы, выполняемой приложением YARN. Все действия, выполненные в контексте контейнера, выполняются на одном рабочем узле, на котором был предоставлен контейнер. Дополнительные сведения см. в разделе Hadoop: Написание приложений YARN YARN или Apache Hadoop YARN .
Чтобы масштабировать кластер для поддержки большей пропускной способности обработки, можно использовать автомасштабирование или масштабирование кластеров вручную с помощью нескольких различных языков.
Сервер временной шкалы YARN
Сервер временной шкалы Apache Hadoop YARN предоставляет универсальные сведения о завершенных приложениях
Сервер временной шкалы YARN включает следующий тип данных:
- Идентификатор приложения, уникальный идентификатор приложения
- Пользователь, который запустил приложение
- Сведения о попытках завершить приложение
- Контейнеры, используемые любой данной попыткой приложения
Приложения и журналы YARN
Журналы приложений (и связанные журналы контейнеров) критически важны для отладки проблемных приложений Hadoop. YARN предоставляет хорошую платформу для сбора, агрегирования и хранения журналов приложений с помощью агрегирования журналов.
Функция агрегирования журналов делает доступ к журналам приложений более детерминированным. Он объединяет журналы во всех контейнерах на рабочем узле и сохраняет их в виде одного агрегированного файла журнала на рабочий узел. Журнал сохраняется в файловой системе по умолчанию после завершения работы приложения. Приложение может использовать сотни или тысячи контейнеров, но журналы для всех контейнеров, выполняемых на одном рабочем узле, всегда объединяются в один файл. Таким образом, существует только один журнал на рабочий узел, используемый приложением. Агрегирование журналов включено по умолчанию в кластерах HDInsight версии 3.0 и выше. Объединенные журналы находятся в хранилище по умолчанию для кластера. Следующий путь — это путь HDFS к журналам:
/app-logs/<user>/logs/<applicationId>
В пути user
— это имя пользователя, который запустил приложение. Идентификатор applicationId
— это уникальный номер, присваиваемый приложению менеджером ресурсов YARN.
Агрегированные журналы не доступны напрямую для чтения, так как они записываются в TFile
двоичном формате, индексированном контейнером. Чтобы отобразить эти журналы для интересующих вас приложений или контейнеров в виде обычного текста, используйте журналы YARN ResourceManager
или средства CLI.
Журналы Yarn в кластере ESP
В пользовательский mapred-site
в Ambari необходимо добавить две конфигурации.
В веб-браузере перейдите на страницу
https://CLUSTERNAME.azurehdinsight.net
, гдеCLUSTERNAME
— это имя вашего кластера.В пользовательском интерфейсе Ambari перейдите к MapReduce2>Configs>Advanced>Custom mapred-site.
Добавьте один из следующих наборов свойств:
Набор 1
mapred.acls.enabled=true mapreduce.job.acl-view-job=*
Набор 2
mapreduce.job.acl-view-job=<user1>,<user2>,<user3>
Сохраните изменения и перезапустите все затронутые службы.
Инструменты командной строки для YARN
С помощью команды ssh command подключитесь к кластеру. Измените следующую команду, заменив CLUSTERNAME именем кластера, а затем введите команду:
ssh [email protected]
Перечислите все идентификаторы текущих работающих приложений Yarn с помощью следующей команды:
yarn top
Обратите внимание на идентификатор приложения из
APPLICATIONID
столбца, журналы которого необходимо скачать.YARN top - 18:00:07, up 19d, 0:14, 0 active users, queue(s): root NodeManager(s): 4 total, 4 active, 0 unhealthy, 0 decommissioned, 0 lost, 0 rebooted Queue(s) Applications: 2 running, 10 submitted, 0 pending, 8 completed, 0 killed, 0 failed Queue(s) Mem(GB): 97 available, 3 allocated, 0 pending, 0 reserved Queue(s) VCores: 58 available, 2 allocated, 0 pending, 0 reserved Queue(s) Containers: 2 allocated, 0 pending, 0 reserved APPLICATIONID USER TYPE QUEUE #CONT #RCONT VCORES RVCORES MEM RMEM VCORESECS MEMSECS %PROGR TIME NAME application_1490377567345_0007 hive spark thriftsvr 1 0 1 0 1G 0G 1628407 2442611 10.00 18:20:20 Thrift JDBC/ODBC Server application_1490377567345_0006 hive spark thriftsvr 1 0 1 0 1G 0G 1628430 2442645 10.00 18:20:20 Thrift JDBC/ODBC Server
Эти журналы можно просмотреть как обычный текст, выполнив одну из следующих команд:
yarn logs -applicationId <applicationId> -appOwner <user-who-started-the-application> yarn logs -applicationId <applicationId> -appOwner <user-who-started-the-application> -containerId <containerId> -nodeAddress <worker-node-address>
<Укажите идентификатор applicationId>, <user-who-started-the-application>, <containerId> и <сведения об адресе> рабочего узла при выполнении этих команд.
Другие примеры команд
Скачайте журналы контейнеров Yarn для всех мастеров приложений с помощью следующей команды. На этом шаге создается файл журнала с именем
amlogs.txt
в текстовом формате.yarn logs -applicationId <application_id> -am ALL > amlogs.txt
Скачайте журналы контейнеров Yarn только для последнего образца приложения с помощью следующей команды:
yarn logs -applicationId <application_id> -am -1 > latestamlogs.txt
Скачайте журналы контейнеров YARN для первых двух мастеров приложений с помощью следующей команды:
yarn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
Скачайте все журналы контейнеров Yarn с помощью следующей команды:
yarn logs -applicationId <application_id> > logs.txt
Скачайте журнал контейнера yarn для конкретного контейнера с помощью следующей команды:
yarn logs -applicationId <application_id> -containerId <container_id> > containerlogs.txt
Пользовательский интерфейс YARN ResourceManager
Пользовательский интерфейс YARN ResourceManager
выполняется в головном узле кластера. Доступ к нему выполняется через веб-интерфейс Ambari. Чтобы просмотреть журналы YARN, выполните следующие действия:
В веб-браузере перейдите в раздел
https://CLUSTERNAME.azurehdinsight.net
. Замените CLUSTERNAME именем кластера HDInsight.В списке служб слева выберите YARN.
В раскрывающемся списке "Быстрые ссылки" выберите один из головного узла кластера, а затем выберите
ResourceManager Log
.Вам будет представлен список ссылок на журналы YARN.