Share via


Problemen met scriptacties in Azure HDInsight oplossen

In dit artikel worden de stappen voor probleemoplossing en mogelijke oplossingen beschreven voor problemen bij interactie met Azure HDInsight-clusters.

Logboeken weergeven

U kunt de Apache Ambari-webgebruikersinterface gebruiken om informatie weer te geven die is vastgelegd door scriptacties. Als het script mislukt tijdens het maken van het cluster, bevinden logboeken zich in het standaardaccount voor clusteropslag. Deze sectie bevat informatie over het ophalen van de logboeken met behulp van beide opties.

Apache Ambari-webinterface

  1. Navigeer in een webbrowser naar https://CLUSTERNAME.azurehdinsight.net, waarbij CLUSTERNAME de naam van uw cluster is.

  2. Selecteer de ops-vermelding in de balk boven aan de pagina. In een lijst worden de huidige en vorige bewerkingen weergegeven die via Ambari op het cluster zijn uitgevoerd.

    Ambari web UI bar with ops selected.

  3. Zoek de vermeldingen met run_customscriptaction in de kolom Bewerkingen . Deze vermeldingen worden gemaakt wanneer de scriptacties worden uitgevoerd.

    Apache Ambari script action operations.

    Als u de STDOUT - en STDERR-uitvoer wilt weergeven, selecteert u de run\customscriptaction-vermelding en zoomt u in op de koppelingen. Deze uitvoer wordt gegenereerd wanneer het script wordt uitgevoerd en nuttige informatie kan bevatten.

Standaardopslagaccount

Als het maken van een cluster mislukt vanwege een scriptfout, worden de logboeken bewaard in het clusteropslagaccount.

  • De opslaglogboeken zijn beschikbaar op \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE.

    Script action logs.

    Onder deze map worden de logboeken afzonderlijk ingedeeld voor hoofdknooppunten, werkknooppunten en zookeeper-knooppunten. Zie de volgende voorbeelden:

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

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

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

  • Alle stdout en stderr van de bijbehorende host worden geüpload naar het opslagaccount. Er is één uitvoer-*.txt en errors-*.txt voor elke scriptactie. Het bestand output-*.txt bevat informatie over de URI van het script dat op de host is uitgevoerd. De volgende tekst is een voorbeeld van deze informatie:

    'Start downloading script locally: ', u'https://hdiconfigactions.blob.core.windows.net/linuxrconfigactionv01/r-installer-v01.sh'
    
  • Het is mogelijk dat u herhaaldelijk een scriptactiecluster met dezelfde naam maakt. In dat geval kunt u de relevante logboeken onderscheiden op basis van de mapNAAM DATE . De mapstructuur voor een cluster, mijn cluster, die op verschillende datums is gemaakt, lijkt bijvoorbeeld op de volgende logboekvermeldingen:

    \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

  • Als u een scriptactiecluster met dezelfde naam op dezelfde dag maakt, kunt u het unieke voorvoegsel gebruiken om de relevante logboekbestanden te identificeren.

  • Als u een cluster rond 12:00 uur maakt, middernacht, is het mogelijk dat de logboekbestanden over twee dagen duren. In dat geval ziet u twee verschillende datummappen voor hetzelfde cluster.

  • Het uploaden van logboekbestanden naar de standaardcontainer kan maximaal vijf minuten duren, met name voor grote clusters. Dus als u de logboeken wilt openen, moet u het cluster niet onmiddellijk verwijderen als een scriptactie mislukt.

Ambari-waakhond

Wijzig het wachtwoord voor de Ambari-watchdog, hdinsightwatchdog, niet in uw HDInsight-cluster op basis van Linux. Een wachtwoordwijziging breekt de mogelijkheid om nieuwe scriptacties uit te voeren op het HDInsight-cluster.

Kan de naam BlobService niet importeren

Symptomen. De scriptactie mislukt. Tekst die lijkt op de volgende fout wordt weergegeven wanneer u de bewerking in Ambari bekijkt:

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

Oorzaak. Deze fout treedt op als u de Python Azure Storage-client upgradet die is opgenomen in het HDInsight-cluster. HDInsight verwacht Azure Storage-client 0.20.0.

Oplossing. U kunt deze fout oplossen door handmatig verbinding te maken met elk clusterknooppunt met behulp van ssh. Voer de volgende opdracht uit om de juiste versie van de opslagclient opnieuw te installeren:

sudo pip install azure-storage==0.20.0

Zie Verbinding maken met HDInsight (Apache Hadoop) met behulp van SSH voor meer informatie over het maken van verbinding met het cluster met SSH.

In de geschiedenis worden de scripts die worden gebruikt tijdens het maken van het cluster niet weergegeven

Als uw cluster vóór 15 maart 2016 is gemaakt, ziet u mogelijk geen vermelding in de scriptactiegeschiedenis. Als u het formaat van het cluster wijzigt, worden de scripts weergegeven in de scriptactiegeschiedenis.

Er zijn twee uitzonderingen:

  • Uw cluster is gemaakt vóór 1 september 2015. Deze datum is het moment waarop scriptacties zijn geïntroduceerd. Een cluster dat vóór deze datum is gemaakt, kan geen scriptacties hebben gebruikt voor het maken van een cluster.

  • U hebt meerdere scriptacties gebruikt tijdens het maken van het cluster. Of u hebt dezelfde naam gebruikt voor meerdere scripts of dezelfde naam, dezelfde URI, maar verschillende parameters voor meerdere scripts. In deze gevallen krijgt u de volgende fout:

    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.
    

Volgende stappen

Als u uw probleem niet hebt gezien of uw probleem niet kunt oplossen, gaat u naar een van de volgende kanalen voor meer ondersteuning:

  • Krijg antwoorden van Azure-experts via de ondersteuning van De Azure-community.

  • Verbinding maken met @AzureSupport: het officiële Microsoft Azure-account voor het verbeteren van de klantervaring. Verbinding maken de Azure-community naar de juiste resources: antwoorden, ondersteuning en experts.

  • Als u meer hulp nodig hebt, kunt u een ondersteuningsaanvraag indienen via Azure Portal. Selecteer Ondersteuning in de menubalk of open de Help + ondersteuningshub . Raadpleeg hoe u een ondersteuning voor Azure aanvraag maakt voor meer informatie. Toegang tot abonnementsbeheer en factuurbeheer is in uw Microsoft Azure-abonnement inbegrepen, en technische ondersteuning wordt verstrekt via een van de Azure-ondersteuningsplannen.