Povolení výpisů paměti haldy pro služby Apache Hadoop ve službě HDInsight se systémem Linux
Výpisy paměti haldy obsahují snímek paměti aplikace, včetně hodnot proměnných v době vytvoření výpisu. Jsou proto užitečné při diagnostice problémů, ke kterým dochází za běhu.
Služby
Výpisy paměti haldy můžete povolit pro následující služby:
- Apache hcatalog – tempelton
- Apache Hive – hiveserver2, metastore, derbyserver
- mapreduce – jobhistoryserver
- Apache yarn – resourcemanager, nodemanager, timelineserver
- Apache hdfs – datový uzel, sekundární uzelname, uzel namenode
Můžete také povolit výpisy paměti haldy pro procesy mapování a redukce spuštěné službou HDInsight.
Principy konfigurace výpisu paměti haldy
Výpisy paměti haldy jsou povolené předáváním možností (někdy označovaných jako opts nebo parameters) prostředí JVM při spuštění služby. U většiny služeb Apache Hadoop můžete upravit skript prostředí používaný ke spuštění služby a předat tyto možnosti.
V každém skriptu je export pro *_OPTS, který obsahuje možnosti předané prostředí JVM. Například ve skriptu hadoop-env.sh obsahuje řádek, který začíná možnostmi export HADOOP_NAMENODE_OPTS=
pro službu NameNode.
Procesy mapování a redukce se mírně liší, protože tyto operace jsou podřízeným procesem služby MapReduce. Každý proces mapování nebo redukce se spustí v podřízeného kontejneru a existují dvě položky, které obsahují možnosti JVM. Obě obsaženy v mapred-site.xml:
- mapreduce.admin.map.child.java.opts
- mapreduce.admin.reduce.child.java.opts
Poznámka:
K úpravě skriptů i nastavení mapred-site.xml doporučujeme použít Apache Ambari , protože Ambari zpracovává změny v různých uzlech v clusteru. Konkrétní kroky najdete v části Použití Apache Ambari .
Povolení výpisů paměti haldy
Následující možnost povolí výpisy paměti haldy, když dojde k chybě OutOfMemoryError:
-XX:+HeapDumpOnOutOfMemoryError
Označuje + , že je tato možnost povolená. Výchozí hodnota je zakázaná.
Upozorňující
Ve výchozím nastavení nejsou pro služby Hadoop ve službě HDInsight povolené výpisy paměti, protože soubory s výpisem paměti můžou být velké. Pokud je povolíte pro řešení potíží, nezapomeňte je po reprodukci problému zakázat a shromáždit soubory s výpisem paměti.
Umístění výpisu paměti
Výchozím umístěním souboru výpisu paměti je aktuální pracovní adresář. Umístění souboru můžete řídit pomocí následující možnosti:
-XX:HeapDumpPath=/path
Například použití -XX:HeapDumpPath=/tmp
způsobí, že výpisy paměti budou uloženy v adresáři /tmp.
Skripty
Skript můžete také aktivovat, když dojde k chybě OutOfMemoryError . Například aktivací oznámení, abyste věděli, že k chybě došlo. K aktivaci skriptu pro OutOfMemoryError použijte následující možnost:
-XX:OnOutOfMemoryError=/path/to/script
Poznámka:
Vzhledem k tomu, že Apache Hadoop je distribuovaný systém, musí být všechny použité skripty umístěny na všech uzlech v clusteru, na kterém služba běží.
Skript musí být také v umístění, které je přístupné účtem, který služba spouští, a musí poskytovat oprávnění ke spuštění. Můžete například chtít ukládat skripty /usr/local/bin
a používat chmod go+rx /usr/local/bin/filename.sh
je k udělení oprávnění ke čtení a spuštění.
Použití Apache Ambari
Pokud chcete upravit konfiguraci služby, postupujte následovně:
Ve webovém prohlížeči přejděte do
https://CLUSTERNAME.azurehdinsight.net
umístění , kdeCLUSTERNAME
je název vašeho clusteru.V seznamu vlevo vyberte oblast služby, kterou chcete upravit. Například HDFS. V oblasti uprostřed vyberte kartu Konfigurace .
Pomocí položky Filtrovat... zadejte opts. Zobrazí se pouze položky obsahující tento text.
Vyhledejte položku *_OPTS pro službu, pro kterou chcete povolit výpisy paměti haldy, a přidejte možnosti, které chcete povolit. Na následujícím obrázku jsem přidal
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/
(a) položku HADOOP_NAMENODE_OPTS :Poznámka:
Při povolování výpisů paměti haldy pro podřízený proces mapování nebo redukce vyhledejte pole s názvem mapreduce.admin.map.child.java.opts a mapreduce.admin.reduce.child.java.opts.
Pomocí tlačítka Uložit uložte změny. Můžete zadat krátkou poznámku popisující změny.
Po použití změn se vedle jedné nebo více služeb zobrazí ikona Restartovat povinné .
Vyberte každou službu, která vyžaduje restartování, a pomocí tlačítka Akce služby zapněte režim údržby. Režim údržby zabraňuje vygenerování výstrah ze služby při restartování.
Jakmile povolíte režim údržby, použijte tlačítko Restartovat , aby služba restartovala všechny efekty.
Poznámka:
Položky tlačítka Restartovat se můžou lišit pro jiné služby.
Po restartování služeb pomocí tlačítka Akce služby vypněte režim údržby. Tento Ambari obnoví monitorování výstrah pro službu.