Устранение неполадок с действиями скриптов в Azure HDInsight

В этой статье описаны действия по устранению неполадок и возможные способы решения проблем при взаимодействии с кластерами Azure HDInsight.

Просмотр журналов

Вы можете использовать веб-интерфейс Apache Ambari для просмотра сведений, регистрируемых действиями скриптов. Если скрипт завершается сбоем при создании кластера, журналы будут записываться в учетную запись хранения кластера по умолчанию. Этот раздел содержит сведения о том, как получить журналы обоими этими способами.

Веб-интерфейс Apache Ambari

  1. В веб-браузере перейдите на страницу https://CLUSTERNAME.azurehdinsight.net, где CLUSTERNAME — это имя вашего кластера.

  2. В панели вверху страницы выберите запись ops. Появится список текущих и предыдущих операций, выполняемых в кластере с помощью Ambari.

    Ambari web UI bar with ops selected.

  3. Найдите записи, для которых в столбце Операции указано run_customscriptaction. Такие записи создаются при выполнении действий сценариев.

    Apache Ambari script action operations.

    Для просмотра выходных данных STDOUT и STDERR выберите запись run\customscriptaction и перейдите по ссылкам. Эти выходные данные формируются при запуске сценария и могут содержать полезные сведения.

Учетная запись хранения по умолчанию

Если из-за ошибки сценария при создании кластера происходит сбой, журналы сохраняются в учетной записи хранения кластера.

  • Журналы хранилища находятся в \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE.

    Script action logs.

    В этом каталоге журналы упорядочены по головному узлу, рабочему узлу и узлу zookeeper. См. следующие примеры.

    • Головной узел: <ACTIVE-HEADNODE-NAME>.cloudapp.net

    • Рабочий узел: <ACTIVE-WORKERNODE-NAME>.cloudapp.net

    • Узел Zookeeper: <ACTIVE-ZOOKEEPERNODE-NAME>.cloudapp.net

  • Все stdout и stderr соответствующего узла передаются в учетную запись хранения. Для каждого действия сценария создается файл output-*.txt и файл errors-*.txt. Файл output-*.txt содержит сведения об URI сценария, запущенном на узле. Ниже приведен пример таких сведений:

    'Start downloading script locally: ', u'https://hdiconfigactions.blob.core.windows.net/linuxrconfigactionv01/r-installer-v01.sh'
    
  • Возможно, повторно создан кластер действия сценария с тем же именем. В этом случае соответствующие журналы можно отличить по имени папки DATE. Например, структура папок для кластера mycluster, созданного в другие дни, будет похожа на следующие записи журнала:

    \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-04 \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-05

  • При создании кластера действие сценария с таким же именем в тот же день можно использовать уникальный префикс для идентификации соответствующих файлов журнала.

  • При создании кластера около полуночи (00:00) файлы журналов могут включать сведения за два дня. В таких случаях для одного кластера будут отображаться две разные папки даты.

  • Передача файлов журнала в контейнер по умолчанию может занять до пяти минут, особенно для больших кластеров. Таким образом, если вы хотите получить доступ к журналам, не следует немедленно удалять кластер при сбое действия сценария.

Модуль наблюдения Ambari

Не изменяйте пароль модуля наблюдения Ambari (hdinsightwatchdog) в кластере HDInsight под управлением Linux. После изменения пароля нельзя будет выполнять новые действия скриптов в кластере HDInsight.

Не удается импортировать BlobService имени

Симптомы. Сбой действия скрипта. При просмотре операции в Ambari выводится следующее сообщение об ошибке:

Traceback (most recent call list):
  File "/var/lib/ambari-agent/cache/custom_actions/scripts/run_customscriptaction.py", line 21, in <module>
    from azure.storage.blob import BlobService
ImportError: cannot import name BlobService

Причина. Эта ошибка возникает при обновлении клиента Python службы хранилища Azure, который входит в состав кластера HDInsight. HDInsight требуется клиент службы хранилища Azure версии 0.20.0.

Способы устранения. Чтобы устранить эту ошибку, вручную подключитесь к каждому узлу кластера с помощью ssh. Выполните следующую команду, чтобы повторно установить требуемую версию клиента хранилища:

sudo pip install azure-storage==0.20.0

Сведения о подключении к кластеру по протоколу SSH см. в статье Подключение к HDInsight (Apache Hadoop) с помощью SSH.

Журнал не отображает сценарии, используемые во время создания кластера

Если кластер создан до 15 марта 2016 г., в журнале действий сценариев могут отсутствовать записи. При изменении размера кластера сценарии фиксируются в журнале действий сценариев.

Имеются два исключения:

  • Кластер создан до 1 сентября 2015 г. Это дата добавления действий сценариев. Если кластер был создан раньше, действия сценариев не могли использоваться при его создании.

  • При создании кластера использовано несколько действий сценариев одновременно. Вы использовали или одно и то же имя для разных сценариев, или одно и то же имя и URI, но разные параметры для разных сценариев. В таких случаях происходит следующая ошибка:

    No new script actions can be run on this cluster because of conflicting script names in existing scripts. Script names provided at cluster creation must be all unique. Existing scripts are run on resize.
    

Следующие шаги

Если вы не видите своего варианта проблемы или вам не удается ее устранить, дополнительные сведения можно получить, посетив один из следующих каналов.

  • Получите ответы специалистов Azure на сайте поддержки сообщества пользователей Azure.

  • Подпишитесь на @AzureSupport — официальный канал Microsoft Azure для улучшения качества взаимодействия с клиентами. Вступайте в сообщество Azure для получения нужных ресурсов: ответов, поддержки и советов экспертов.

  • Если вам нужна дополнительная помощь, отправьте запрос в службу поддержки на портале Azure. Выберите Поддержка в строке меню или откройте центр Справка и поддержка. Дополнительные сведения см. в статье Создание запроса на поддержку Azure. Доступ к управлению подписками и поддержкой выставления счетов уже включен в вашу подписку Microsoft Azure, а техническая поддержка предоставляется в рамках одного из планов Службы поддержки Azure.