Známé problémy s clusterem Apache Spark ve službě HDInsight
Tento dokument sleduje všechny známé problémy s verzí HDInsight Spark Public Preview.
Apache Livy nevrací interaktivní relaci
Když se Apache Livy restartuje (z Apache Ambari nebo kvůli restartování virtuálního počítače hlavního uzlu 0) s interaktivní relací, která je stále aktivní, dojde k úniku relace interaktivní úlohy. V důsledku toho můžou být nové úlohy zablokované ve stavu Přijato.
Snížení rizika:
K vyřešení problému použijte následující postup:
SSH do hlavního uzlu. Další informace najdete v tématu Použití SSH se službou HDInsight.
Spuštěním následujícího příkazu vyhledejte ID aplikací interaktivních úloh spuštěných prostřednictvím Livy.
yarn application –list
Výchozí názvy úloh budou Livy, pokud byly úlohy spuštěny s interaktivní relací Livy bez zadaných explicitních názvů. Pro relaci Livy spuštěnou Jupyter Notebook začíná název úlohy na
remotesparkmagics_*
.Spuštěním následujícího příkazu tyto úlohy ukončete.
yarn application –kill <Application ID>
Spustí se nové úlohy.
Server historie Sparku není spuštěný
Server historie Sparku se po vytvoření clusteru nespustit automaticky.
Snížení rizika:
Ručně spusťte server historie z Ambari.
Problém s oprávněními v adresáři protokolů Sparku
Při odesílání úlohy pomocí spark-submit se uživateli hdiuser zobrazí následující chyba:
java.io.FileNotFoundException: /var/log/spark/sparkdriver_hdiuser.log (Permission denied)
A není zapsaný žádný protokol ovladače.
Snížení rizika:
- Přidejte hdiuser do skupiny Hadoop.
- Po vytvoření clusteru zadejte oprávnění 777 pro /var/log/spark.
- Aktualizujte umístění protokolu Sparku pomocí Ambari na adresář s oprávněními 777.
- Spusťte spark-submit jako sudo.
Spark-Phoenix konektor se nepodporuje.
Clustery HDInsight Spark nepodporují konektor Spark-Phoenix.
Snížení rizika:
Místo toho musíte použít konektor Spark-HBase. Pokyny najdete v tématu Použití konektoru Spark-HBase.
Problémy související s poznámkovými bloky Jupyter
Následuje několik známých problémů souvisejících s poznámkovými bloky Jupyter.
Poznámkové bloky s jinými znaky než ASCII v náznacích souborů
Nepoužívejte jiné znaky než ASCII v Jupyter Notebook názvy souborů. Pokud se pokusíte nahrát soubor prostřednictvím uživatelského rozhraní Jupyter, které má jiný než název souboru ASCII, selže bez jakékoli chybové zprávy. Jupyter neumožňuje nahrát soubor, ale nevyvolá ani viditelnou chybu.
Chyba při načítání poznámkových bloků větších velikostí
Při načítání poznámkových bloků, které jsou větší, se může zobrazit chyba Error loading notebook
.
Snížení rizika:
Pokud se zobrazí tato chyba, neznamená to, že jsou data poškozená nebo ztracená. Vaše poznámkové bloky jsou stále na disku v /var/lib/jupyter
systému a pro přístup k nim můžete použít připojení SSH do clusteru. Další informace najdete v tématu Použití SSH se službou HDInsight.
Po připojení ke clusteru pomocí SSH můžete poznámkové bloky z clusteru zkopírovat do místního počítače (pomocí SCP nebo WinSCP) jako zálohu, abyste zabránili ztrátě důležitých dat v poznámkovém bloku. Pak můžete tunelem SSH do hlavního uzlu na portu 8001 získat přístup k Jupyteru bez průchodu bránou. Odtud můžete vymazat výstup poznámkového bloku a znovu ho uložit, abyste minimalizovali velikost poznámkového bloku.
Pokud chcete zabránit tomu, aby k této chybě v budoucnu docházelo, musíte postupovat podle některých osvědčených postupů:
- Je důležité zachovat malou velikost poznámkového bloku. Všechny výstupy z úloh Sparku, které se odešlou zpět do Jupyteru, se v poznámkovém bloku zachovají. Obecně je osvědčeným postupem u Jupyteru vyhnout se spouštění
.collect()
na velkých sadách RDD nebo datových rámcích. Pokud chcete nahlédnout do obsahu SADY RDD, zvažte spuštění.take()
nebo.sample()
tak, aby se výstup příliš nezveřejňoval. - Při ukládání poznámkového bloku také zrušte zaškrtnutí všech výstupních buněk, abyste zmenšili jeho velikost.
Počáteční spuštění poznámkového bloku trvá déle, než se čekalo
První příkaz kódu v Jupyter Notebook použití magie Sparku může trvat déle než minutu.
Vysvětlení:
K tomu dochází, protože při spuštění první buňky kódu. Na pozadí se tím zahájí konfigurace relace a nastaví se kontexty Sparku, SQL a Hivu. Po nastavení těchto kontextů se spustí první příkaz, který vytvoří dojem, že dokončení příkazu trvalo dlouhou dobu.
Jupyter Notebook vypršení časového limitu při vytváření relace
Když je cluster Sparku mimo prostředky, jádra Sparku a PySpark v Jupyter Notebook při pokusu o vytvoření relace vyprší časový limit.
Zmírnění rizik:
Uvolněte některé prostředky v clusteru Spark:
- Zastavte ostatní poznámkové bloky Sparku tak, že přejdete do nabídky Zavřít a zastavit nebo v Průzkumníku poznámkových bloků kliknete na Vypnout.
- Zastavení dalších aplikací Spark z YARN
Restartujte poznámkový blok, který jste se pokusili spustit. K vytvoření relace by měl být k dispozici dostatek prostředků.
Viz také
Scénáře
- Apache Spark s BI: Provádění interaktivní analýzy dat pomocí Sparku ve službě HDInsight pomocí nástrojů BI
- Apache Spark se službou Machine Learning: Použití Sparku ve službě HDInsight k analýze teploty budovy s využitím dat HVAC
- Apache Spark s Machine Learning: Použití Sparku ve službě HDInsight k predikci výsledků kontroly potravin
- Analýza protokolu webu pomocí Apache Sparku ve službě HDInsight
Vytvoření a spouštění aplikací
- Vytvoření samostatné aplikace pomocí Scala
- Vzdálené spouštění úloh v clusteru Apache Spark pomocí Apache Livy
Nástroje a rozšíření
- Modul plug-in nástroje HDInsight pro IntelliJ IDEA pro vytvoření a odesílání aplikací Spark Scala
- Použití modulu plug-in nástrojů HDInsight pro IntelliJ IDEA k vzdálenému ladění aplikací Apache Spark
- Použití poznámkových bloků Apache Zeppelin s clusterem Apache Spark ve službě HDInsight
- Jádra dostupná pro Jupyter Notebook v clusteru Apache Spark pro HDInsight
- Použití externích balíčků s poznámkovými bloky Jupyter
- Nainstalujte do počítače Jupyter a připojte ho ke clusteru HDInsight Spark