Delen via


Bekende problemen voor Apache Spark-cluster in HDInsight

In dit document worden alle bekende problemen voor de openbare preview van HDInsight Spark bijgehouden.

Apache Livy lekt interactieve sessie

Wanneer Apache Livy opnieuw wordt gestart (vanuit Apache Ambari of vanwege het opnieuw opstarten van de virtuele machine hoofdknooppunt 0) met een interactieve sessie die nog actief is, wordt er een interactieve taaksessie gelekt. Als gevolg hiervan kunnen nieuwe taken vastlopen in de status Geaccepteerd.

Oplossing:

Gebruik de volgende procedure om het probleem te omzeilen:

  1. Ssh in hoofdknooppunt. Zie SSH-sleutels gebruiken met HDInsight voor informatie.

  2. Voer de volgende opdracht uit om de toepassings-id's te vinden van de interactieve taken die zijn gestart via Livy.

    yarn application –list
    

    De standaardtaaknamen zijn Livy als de taken zijn gestart met een interactieve Livy-sessie zonder expliciete namen. Voor de Livy-sessie die is gestart door Jupyter Notebook, begint de taaknaam met remotesparkmagics_*.

  3. Voer de volgende opdracht uit om deze taken te beëindigen.

    yarn application –kill <Application ID>
    

Nieuwe taken worden uitgevoerd.

Spark History Server is niet gestart

Spark History Server wordt niet automatisch gestart nadat een cluster is gemaakt.

Oplossing:

Start de geschiedenisserver handmatig vanuit Ambari.

Machtigingsprobleem in Spark-logboekmap

hdiuser krijgt de volgende fout bij het verzenden van een taak met behulp van spark-submit:

java.io.FileNotFoundException: /var/log/spark/sparkdriver_hdiuser.log (Permission denied)

En er wordt geen stuurprogrammalogboek geschreven.

Oplossing:

  1. Voeg hdiuser toe aan de Hadoop-groep.
  2. Geef 777 machtigingen op voor /var/log/spark na het maken van het cluster.
  3. Werk de locatie van het Spark-logboek bij met Behulp van Ambari om een map met 777 machtigingen te zijn.
  4. Voer spark-submit uit als sudo.

Spark-Phoenix-connector wordt niet ondersteund

HDInsight Spark-clusters bieden geen ondersteuning voor de Spark-Phoenix-connector.

Oplossing:

U moet in plaats daarvan de Spark-HBase-connector gebruiken. Zie How to use Spark-HBase connector (Spark-HBase-connector gebruiken) voor de instructies.

Hieronder volgen enkele bekende problemen met betrekking tot Jupyter Notebooks.

Notebooks met niet-ASCII-tekens in bestandsnamen

Gebruik geen niet-ASCII-tekens in Jupyter Notebook bestandsnamen. Als u probeert een bestand te uploaden via de Jupyter-gebruikersinterface, die een niet-ASCII-bestandsnaam heeft, mislukt dit zonder foutbericht. Met Jupyter kunt u het bestand niet uploaden, maar er wordt ook geen zichtbare fout gegenereerd.

Fout bij het laden van notitieblokken van grotere grootten

Er wordt mogelijk een fout weergegeven Error loading notebook wanneer u notitieblokken laadt die groter zijn.

Oplossing:

Als u deze fout krijgt, betekent dit niet dat uw gegevens beschadigd zijn of verloren gaan. Uw notebooks bevinden zich nog steeds op de schijf in /var/lib/jupyteren u kunt via SSH toegang krijgen tot het cluster. Zie SSH-sleutels gebruiken met HDInsight voor informatie.

Zodra u verbinding hebt gemaakt met het cluster met behulp van SSH, kunt u uw notebooks van uw cluster naar uw lokale computer kopiëren (met behulp van SCP of WinSCP) als back-up om te voorkomen dat belangrijke gegevens in het notebook verloren gaan. U kunt vervolgens een SSH-tunnel uitvoeren naar uw hoofdknooppunt op poort 8001 om toegang te krijgen tot Jupyter zonder de gateway te doorlopen. Van daaruit kunt u de uitvoer van uw notebook wissen en opnieuw opslaan om de grootte van het notitieblok te minimaliseren.

Als u wilt voorkomen dat deze fout in de toekomst optreedt, moet u enkele aanbevolen procedures volgen:

  • Het is belangrijk om het notitieblok klein te houden. Alle uitvoer van uw Spark-taken die naar Jupyter wordt teruggestuurd, blijft behouden in het notebook. Het is een best practice met Jupyter in het algemeen om te voorkomen dat het wordt uitgevoerd .collect() op grote RDD's of dataframes. Als u in plaats daarvan de inhoud van een RDD wilt bekijken, kunt u overwegen of uit te voeren .take().sample() , zodat uw uitvoer niet te groot wordt.
  • Wanneer u een notitieblok opslaat, wist u ook alle uitvoercellen om de grootte te verkleinen.

Het initiële opstarten van notebook duurt langer dan verwacht

De eerste code-instructie in Jupyter Notebook het gebruik van Spark-magic kan meer dan een minuut duren.

Uitleg:

Dit gebeurt omdat wanneer de eerste codecel wordt uitgevoerd. Op de achtergrond wordt hiermee de sessieconfiguratie gestart en worden spark-, SQL- en Hive-contexten ingesteld. Nadat deze contexten zijn ingesteld, wordt de eerste instructie uitgevoerd en dit geeft de indruk dat het lang duurt om de instructie te voltooien.

time-out Jupyter Notebook bij het maken van de sessie

Wanneer het Spark-cluster geen resources meer heeft, treedt er een time-out op voor de Spark- en PySpark-kernels in de Jupyter Notebook bij het maken van de sessie.

Oplossingen:

  1. Maak enkele resources vrij in uw Spark-cluster door:

    • Andere Spark-notebooks stoppen door naar het menu Sluiten en stoppen te gaan of door te klikken op Afsluiten in de Notebook Explorer.
    • Andere Spark-toepassingen stoppen vanuit YARN.
  2. Start het notitieblok dat u probeerde op te starten opnieuw. Er moeten voldoende resources beschikbaar zijn om nu een sessie te maken.

Zie ook

Scenario's

Toepassingen maken en uitvoeren

Tools en uitbreidingen

Resources beheren