Felsöka skriptåtgärder i Azure HDInsight

Den här artikeln beskriver felsökningssteg och möjliga lösningar på problem när du interagerar med Azure HDInsight-kluster.

Visa loggar

Du kan använda Apache Ambari-webbgränssnittet för att visa information som loggas av skriptåtgärder. Om skriptet misslyckas när klustret skapas finns loggarna i standardkontot för klusterlagring. Det här avsnittet innehåller information om hur du hämtar loggarna med båda dessa alternativ.

Apache Ambari-webbgränssnitt

  1. Från en webbläsare går du till https://CLUSTERNAME.azurehdinsight.net, där CLUSTERNAME är namnet på klustret.

  2. Välj posten ops i fältet överst på sidan. En lista visar aktuella och tidigare åtgärder som utförts i klustret via Ambari.

    Ambari-webbgränssnittsfältet med ops valt.

  3. Leta reda på de poster som har run_customscriptaction i kolumnen Åtgärder . Dessa poster skapas när skriptåtgärderna körs.

    Åtgärdsåtgärder för Apache Ambari-skript.

    Om du vill visa STDOUT - och STDERR-utdata väljer du posten run\customscriptaction och ökar detaljnivån genom länkarna. Utdata genereras när skriptet körs och kan ha användbar information.

Standardlagringskonto

Om klusterskapandet misslyckas på grund av ett skriptfel sparas loggarna i klusterlagringskontot.

  • Lagringsloggarna är tillgängliga på \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE.

    Skriptåtgärdsloggar.

    Under den här katalogen ordnas loggarna separat för huvudnod, arbetsnod och zookeeper-nod. Se följande exempel:

    • Huvudnod: <ACTIVE-HEADNODE-NAME>.cloudapp.net

    • Arbetsnod: <ACTIVE-WORKERNODE-NAME>.cloudapp.net

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

  • All stdout och stderr för motsvarande värd laddas upp till lagringskontot. Det finns en utdata-*.txt och fel-*.txt för varje skriptåtgärd. Filen output-*.txt innehåller information om URI:n för skriptet som kördes på värden. Följande text är ett exempel på den här informationen:

    'Start downloading script locally: ', u'https://hdiconfigactions.blob.core.windows.net/linuxrconfigactionv01/r-installer-v01.sh'
    
  • Det är möjligt att du upprepade gånger skapar ett skriptåtgärdskluster med samma namn. I så fall kan du särskilja relevanta loggar baserat på namnet på DATE-mappen . Mappstrukturen för ett kluster, mycluster, som skapats på olika datum, ser till exempel ut ungefär som följande loggposter:

    \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

  • Om du skapar ett skriptåtgärdskluster med samma namn samma dag kan du använda det unika prefixet för att identifiera relevanta loggfiler.

  • Om du skapar ett kluster nära 12:00, midnatt, är det möjligt att loggfilerna sträcker sig över två dagar. I så fall visas två olika datummappar för samma kluster.

  • Det kan ta upp till fem minuter att ladda upp loggfiler till standardcontainern, särskilt för stora kluster. Om du vill komma åt loggarna bör du därför inte omedelbart ta bort klustret om en skriptåtgärd misslyckas.

Ambari vakthund

Ändra inte lösenordet för Ambari-vakthunden, hdinsightwatchdog, i ditt Linux-baserade HDInsight-kluster. En lösenordsändring bryter möjligheten att köra nya skriptåtgärder i HDInsight-klustret.

Det går inte att importera namnet BlobService

Symptom. Skriptåtgärden misslyckas. Text som liknar följande fel visas när du visar åtgärden i 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

Orsak. Det här felet uppstår om du uppgraderar Python Azure Storage-klienten som ingår i HDInsight-klustret. HDInsight förväntar sig Azure Storage-klienten 0.20.0.

Lösning. Lös det här felet genom att manuellt ansluta till varje klusternod med hjälp sshav . Kör följande kommando för att installera om rätt lagringsklientversion:

sudo pip install azure-storage==0.20.0

Information om hur du ansluter till klustret med SSH finns i Ansluta till HDInsight (Apache Hadoop) med hjälp av SSH.

Historiken visar inte skripten som användes när klustret skapades

Om klustret skapades före den 15 mars 2016 kanske du inte ser någon post i skriptåtgärdshistoriken. Om du ändrar storlek på klustret visas skripten i skriptets åtgärdshistorik.

Det finns två undantag:

  • Klustret skapades före den 1 september 2015. Det här datumet då skriptåtgärder introducerades. Alla kluster som skapades före det här datumet kunde inte ha använt skriptåtgärder för att skapa kluster.

  • Du använde flera skriptåtgärder när klustret skapades. Eller så använde du samma namn för flera skript eller samma namn, samma URI, men olika parametrar för flera skript. I dessa fall får du följande fel:

    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.
    

Nästa steg

Om du inte ser problemet eller inte kan lösa problemet går du till någon av följande kanaler för mer support:

  • Få svar från Azure-experter via Azure Community Support.

  • Anslut med @AzureSupport – det officiella Microsoft Azure-kontot för att förbättra kundupplevelsen. Ansluta Azure-communityn till rätt resurser: svar, support och experter.

  • Om du behöver mer hjälp kan du skicka en supportbegäran från Azure Portal. Välj Support i menyraden eller öppna hubben Hjälp + support . Mer detaljerad information finns i Skapa en Azure Support begäran. Tillgång till support för prenumerationshantering och fakturering ingår i din Microsoft Azure-prenumeration och teknisk support ges via ett supportavtal för Azure.