Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Heap-dumps bevatten een momentopname van het geheugen van de toepassing, inclusief de waarden van variabelen op het moment dat de dump is gemaakt. Ze zijn dus handig voor het diagnosticeren van problemen die optreden tijdens runtime.
Diensten
U kunt heapdumps inschakelen voor de volgende services:
- Apache hcatalog - tempelton
- Apache Hive - HiveServer2, Metastore, DerbyServer
- mapreduce - jobhistoryserver
- Apache Yarn - resourcemanager, nodemanager, timelineserver
- Apache HDFS - - datanode, secondarynamenode, namenode
U kunt ook heapdumps inschakelen voor de kaart- en reductieprocessen die worden uitgevoerd door HDInsight.
Inzicht in heapdumpconfiguratie
Heap-dumps worden ingeschakeld door opties (ook wel opts of parameters genoemd) door te geven aan de JVM wanneer een service wordt gestart. Voor de meeste Apache Hadoop--services kunt u het shellscript wijzigen dat wordt gebruikt om de service te starten om deze opties door te geven.
In elk script is er een export voor *_OPTS, die de opties bevat die worden doorgegeven aan de JVM. In het script hadoop-env.sh bevat de regel die begint met export HADOOP_NAMENODE_OPTS=
bijvoorbeeld de opties voor de NameNode-service.
Map- en reduceprocessen verschillen enigszins, omdat deze bewerkingen onderdelen van de MapReduce-service zijn. Elk map- of reduceproces wordt uitgevoerd in een subcontainer, en er zijn twee invoeren die de JVM-opties bevatten. Beide zijn opgenomen in mapred-site.xml:
- mapreduce.admin.map.child.java.opts
- mapreduce.admin.reduce.child.java.opts
Notitie
We raden u aan om Apache Ambari- te gebruiken om zowel de scripts als mapred-site.xml-instellingen te wijzigen, omdat Ambari het repliceren van wijzigingen tussen knooppunten in het cluster afhandelt. Zie de sectie Apache Ambari gebruiken voor specifieke stappen.
Heapdumps inschakelen
Met de volgende optie kunt u heapdumps inschakelen wanneer een OutOfMemoryError optreedt:
-XX:+HeapDumpOnOutOfMemoryError
De + geeft aan dat deze optie is ingeschakeld. De standaardwaarde is uitgeschakeld.
Waarschuwing
Heap-dumps zijn standaard niet ingeschakeld voor Hadoop-services in HDInsight, omdat de dumpbestanden groot kunnen zijn. Als u ze inschakelt voor probleemoplossing, moet u deze uitschakelen nadat u het probleem hebt gereproduceerd en de dumpbestanden hebt verzameld.
Dumplocatie
De standaardlocatie voor het dumpbestand is de huidige werkmap. U kunt bepalen waar het bestand is opgeslagen met behulp van de volgende optie:
-XX:HeapDumpPath=/path
Als u bijvoorbeeld -XX:HeapDumpPath=/tmp
gebruikt, worden de dumps opgeslagen in de map /tmp.
Scripten
U kunt ook een script activeren wanneer een OutOfMemoryError- plaatsvindt. Als u bijvoorbeeld een melding activeert, zodat u weet dat de fout is opgetreden. Gebruik de volgende optie om een script te activeren op een OutOfMemoryError-:
-XX:OnOutOfMemoryError=/path/to/script
Notitie
Omdat Apache Hadoop een gedistribueerd systeem is, moet elk script dat wordt gebruikt, worden geplaatst op alle knooppunten in het cluster waarop de service wordt uitgevoerd.
Het script moet zich ook op een locatie bevinden die toegankelijk is voor het account dat door de service wordt uitgevoerd en moet uitvoeringsmachtigingen opgeven. U kunt bijvoorbeeld scripts opslaan in /usr/local/bin
en chmod go+rx /usr/local/bin/filename.sh
gebruiken om lees- en uitvoermachtigingen te verlenen.
Apache Ambari gebruiken
Gebruik de volgende stappen om de configuratie voor een service te wijzigen:
Navigeer in een webbrowser naar
https://CLUSTERNAME.azurehdinsight.net
, waarbijCLUSTERNAME
de naam van uw cluster is.Selecteer in de lijst aan de linkerkant het servicegebied dat u wilt wijzigen. Bijvoorbeeld HDFS-. Selecteer in het middelste gebied het tabblad Configuraties.
Gebruik het -filter, voer in en voer optiesin. Alleen items met deze tekst worden weergegeven.
Zoek de *_OPTS vermelding voor de service waarvoor u heapdumps wilt inschakelen en voeg de opties toe die u wilt inschakelen. In de volgende afbeelding heb ik
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/
toegevoegd aan de vermelding HADOOP_NAMENODE_OPTS:Notitie
Wanneer u heapdumps inschakelt voor het onderliggende map- of reduce-proces, zoekt u naar velden met de namen mapreduce.admin.map.child.java.opts en mapreduce.admin.reduce.child.java.opts.
Gebruik de knop Opslaan om de wijzigingen op te slaan. U kunt een korte notitie invoeren waarin de wijzigingen worden beschreven.
Zodra de wijzigingen zijn toegepast, wordt het pictogram Opnieuw opstarten vereist naast een of meer services weergegeven.
Selecteer elke service die opnieuw moet worden opgestart en gebruik de knop Serviceacties om de onderhoudsmodus in te schakelen . Onderhoudsmodus voorkomt dat waarschuwingen worden gegenereerd vanuit de service wanneer u deze opnieuw start.
Nadat u de onderhoudsmodus hebt ingeschakeld, gebruikt u de knop Opnieuw opstarten voor de service om alle opnieuw opstarten
Notitie
De vermeldingen voor de knop Opnieuw opstarten kunnen afwijken voor andere services.
Zodra de services opnieuw zijn opgestart, gebruikt u de knop Serviceacties om de onderhoudsmodus uit te schakelen. Deze Ambari hervat de bewaking voor waarschuwingen voor de service.