Sdílet prostřednictvím


Řešení potíží s akcemi skriptů ve službě Azure HDInsight

Tento článek popisuje kroky řešení potíží a možná řešení problémů při interakci s clustery Azure HDInsight.

Zobrazení protokolů

Webové uživatelské rozhraní Apache Ambari můžete použít k zobrazení informací protokolovaných akcemi skriptu. Pokud skript během vytváření clusteru selže, protokoly jsou ve výchozím účtu úložiště clusteru. Tato část obsahuje informace o tom, jak načíst protokoly pomocí obou těchto možností.

Webové uživatelské rozhraní Apache Ambari

  1. Ve webovém prohlížeči přejděte do https://CLUSTERNAME.azurehdinsight.netumístění , kde CLUSTERNAME je název vašeho clusteru.

  2. Na panelu v horní části stránky vyberte položku operace . Seznam zobrazuje aktuální a předchozí operace provedené v clusteru prostřednictvím Ambari.

    Ambari web UI bar with ops selected.

  3. Vyhledejte položky, které mají run_customscriptaction ve sloupci Operace . Tyto položky se vytvoří při spuštění akcí skriptu.

    Apache Ambari script action operations.

    Pokud chcete zobrazit výstup STDOUT a STDERR , vyberte položku run\customscriptaction a přejděte k podrobnostem prostřednictvím odkazů. Tento výstup se vygeneruje při spuštění skriptu a může mít užitečné informace.

Výchozí účet úložiště

Pokud se vytvoření clusteru nezdaří kvůli chybě skriptu, protokoly se uchovávají v účtu úložiště clusteru.

  • Protokoly úložiště jsou k dispozici na adrese \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE.

    Script action logs.

    V tomto adresáři jsou protokoly uspořádány samostatně pro hlavní uzel, pracovní uzel a uzel zookeeper. Podívejte se na následující příklady:

    • Hlavní uzel: <ACTIVE-HEADNODE-NAME>.cloudapp.net

    • Pracovní uzel: <ACTIVE-WORKERNODE-NAME>.cloudapp.net

    • Uzel Zookeeper: <ACTIVE-ZOOKEEPERNODE-NAME>.cloudapp.net

  • Všechny stdout a stderr odpovídajícího hostitele se nahrají do účtu úložiště. Existuje jeden výstup – *.txt a chyby -*.txt pro každou akci skriptu. Výstupní *.txt soubor obsahuje informace o identifikátoru URI skriptu, který byl spuštěn na hostiteli. Následující text je příkladem těchto informací:

    'Start downloading script locally: ', u'https://hdiconfigactions.blob.core.windows.net/linuxrconfigactionv01/r-installer-v01.sh'
    
  • Je možné, že opakovaně vytvoříte cluster akcí skriptu se stejným názvem. V takovém případě můžete rozlišovat relevantní protokoly na základě názvu složky DATE . Například struktura složek clusteru mycluster vytvořená v různých datech se podobá následujícím položkám protokolu:

    \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

  • Pokud vytvoříte cluster akcí skriptu se stejným názvem ve stejný den, můžete k identifikaci příslušných souborů protokolu použít jedinečnou předponu.

  • Pokud vytvoříte cluster téměř 12:00, půlnoc, je možné, že soubory protokolu přesahují dva dny. V takovém případě se pro stejný cluster zobrazí dvě různé složky kalendářních dat.

  • Nahrávání souborů protokolu do výchozího kontejneru může trvat až pět minut, zejména u velkých clusterů. Pokud tedy chcete získat přístup k protokolům, neměli byste cluster okamžitě odstranit, pokud selže akce skriptu.

Ambari watchdog

V clusteru HDInsight s Linuxem neměňte heslo pro sledovací program Ambari, hdinsightwatchdog. Změna hesla přeruší schopnost spouštět nové akce skriptů v clusteru HDInsight.

Nejde importovat název BlobService

Příznaky. Akce skriptu selže. Text podobný následující chybě se zobrazí při zobrazení operace v 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

Příčina: K této chybě dochází v případě, že upgradujete klienta Azure Storage v Pythonu, který je součástí clusteru HDInsight. HDInsight očekává klienta Azure Storage 0.20.0.

Řešení: Pokud chcete tuto chybu vyřešit, připojte se ručně ke každému uzlu clusteru pomocí .ssh Spuštěním následujícího příkazu přeinstalujte správnou verzi klienta úložiště:

sudo pip install azure-storage==0.20.0

Informace o připojení ke clusteru pomocí SSH najdete v tématu Připojení ke službě HDInsight (Apache Hadoop) pomocí SSH.

Historie nezobrazuje skripty použité při vytváření clusteru.

Pokud byl cluster vytvořen před 15. březnem 2016, nemusí se v historii akcí skriptu zobrazit položka. Změna velikosti clusteru způsobí, že se skripty zobrazí v historii akcí skriptu.

Existují dvě výjimky:

  • Cluster byl vytvořen před 1. zářím 2015. Toto datum je datum, kdy byly zavedeny akce skriptu. Všechny clustery vytvořené před tímto datem nemohly použít akce skriptu pro vytvoření clusteru.

  • Během vytváření clusteru jste použili několik akcí skriptu. Nebo jste použili stejný název pro více skriptů nebo stejný název, stejný identifikátor URI, ale různé parametry pro více skriptů. V těchto případech se zobrazí následující chyba:

    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.
    

Další kroky

Pokud jste problém neviděli nebo nemůžete problém vyřešit, navštivte jeden z následujících kanálů, kde najdete další podporu:

  • Získejte odpovědi od odborníků na Azure prostřednictvím podpory komunity Azure.

  • Připojení s @AzureSupport – oficiálním účtem Microsoft Azure pro zlepšení zkušeností zákazníků. Připojení komunity Azure k správným prostředkům: odpovědi, podpora a odborníci.

  • Pokud potřebujete další pomoc, můžete odeslat žádost o podporu z webu Azure Portal. V řádku nabídek vyberte možnost Podpora nebo otevřete centrum nápovědy a podpory . Podrobnější informace najdete v tématu Vytvoření žádosti o podpora Azure. Součástí předplatného Microsoft Azure je přístup ke správě předplatného a podpora fakturace. Technická podpora se poskytuje prostřednictvím některého z plánů podpory Azure.