Vytvoření aplikací Apache Spark pro cluster HDInsight pomocí sady Azure Toolkit for Eclipse
Pomocí nástrojů HDInsight v sadě Azure Toolkit for Eclipse můžete vyvíjet aplikace Apache Spark napsané v jazyce Scala a odesílat je do clusteru Azure HDInsight Spark přímo z integrovaného vývojového prostředí Eclipse. Modul plug-in nástroje HDInsight můžete použít několika různými způsoby:
- Vývoj a odeslání aplikace Scala Spark v clusteru HDInsight Spark
- Přístup k prostředkům clusteru Azure HDInsight Spark
- Pokud chcete vyvíjet a spouštět aplikaci Scala Spark místně.
Požadavky
Cluster Apache Spark ve službě HDInsight Pokyny najdete v tématu Vytváření clusterů Apache Spark ve službě Azure HDInsight.
Integrované vývojové prostředí Eclipse Tento článek používá integrované vývojové prostředí Eclipse pro vývojáře v Javě.
Instalace požadovaných modulů plug-in
Instalace sady Azure Toolkit for Eclipse
Pokyny k instalaci najdete v tématu Instalace sady Azure Toolkit for Eclipse.
Instalace modulu plug-in Scala
Když otevřete Eclipse, nástroje HDInsight automaticky zjistí, jestli jste nainstalovali modul plug-in Scala. Pokračujte výběrem ok a pak podle pokynů nainstalujte modul plug-in z Eclipse Marketplace. Po dokončení instalace restartujte integrované vývojové prostředí (IDE).
Potvrzení modulů plug-in
Přejděte do nápovědy>k Eclipse Marketplace....
Vyberte kartu Nainstalováno.
Měli byste vidět alespoň:
- Verze sady Azure Toolkit for Eclipse <>
- Verze integrovaného vývojového prostředí> (IDE<) scala
Přihlaste se ke svému předplatnému Azure.
Spusťte integrované vývojové prostředí Eclipse.
Přejděte do >okna Zobrazit jiné...>>Přihlaste se...
V dialogovém okně Zobrazit zobrazení přejděte do Azure>Exploreru a pak vyberte Otevřít.
V Azure Exploreru klikněte pravým tlačítkem na uzel Azure a pak vyberte Přihlásit se.
V dialogovém okně Přihlášení k Azure zvolte metodu ověřování, vyberte Přihlásit se a dokončete proces přihlášení.
Po přihlášení se v dialogovém okně Vaše předplatná zobrazí seznam všech předplatných Azure přidružených k přihlašovacím údajům. Dialogové okno zavřete stisknutím klávesy Vybrat .
V Azure Exploreru přejděte do Služby Azure>HDInsight a zobrazte clustery HDInsight Spark v rámci vašeho předplatného.
Dále můžete rozbalit uzel názvu clusteru a zobrazit prostředky (například účty úložiště) přidružené ke clusteru.
Propojení clusteru
Normální cluster můžete propojit pomocí spravovaného uživatelského jména Ambari. Podobně můžete pro cluster HDInsight připojený k doméně propojit pomocí domény a uživatelského jména, například user1@contoso.com
.
V Azure Exploreru klikněte pravým tlačítkem na HDInsight a vyberte Propojit cluster.
Zadejte název clusteru, uživatelské jméno a heslo a pak vyberte OK. Volitelně můžete zadat účet úložiště, klíč úložiště a pak vybrat kontejner úložiště, aby průzkumník úložiště fungoval v levém stromovém zobrazení.
Poznámka:
Použijeme propojený klíč úložiště, uživatelské jméno a heslo, pokud se cluster přihlásil k předplatnému Azure i propojenému clusteru.
Jenom pro uživatele klávesnice, když je aktuální fokus na klíč úložiště, musíte použít kombinaci kláves Ctrl+TAB , abyste se mohli zaměřit na další pole v dialogovém okně.
Uvidíte propojený cluster v hdInsightu. Teď můžete odeslat aplikaci do tohoto propojeného clusteru.
Cluster můžete také odpojit od Azure Exploreru.
Nastavení projektu Spark Scala pro cluster HDInsight Spark
V pracovním prostoru integrovaného vývojového prostředí Eclipse vyberte Soubor>nový>projekt....
V průvodci novým projektem vyberte HDInsight Project>Spark ve službě HDInsight (Scala). Pak vyberte Další.
V dialogovém okně Nový projekt HDInsight Scala zadejte následující hodnoty a pak vyberte Další:
- Zadejte název projektu.
- V oblasti JRE se ujistěte, že je prostředí JRE pro spuštění nastavené na JavaSE-1.7 nebo novější.
- V oblasti Knihovna Sparku můžete zvolit možnost Použít Maven ke konfiguraci sady Spark SDK. Náš nástroj integruje správnou verzi sady Spark SDK a Scala SDK. Můžete také zvolit možnost Ruční přidání sady Spark SDK , stažení a přidání sady Spark SDK ručně.
V dalším dialogovém okně zkontrolujte podrobnosti a pak vyberte Dokončit.
Vytvoření aplikace Scala pro cluster HDInsight Spark
V Průzkumníku balíčků rozbalte projekt, který jste vytvořili dříve. Klikněte pravým tlačítkem myši na src, vyberte Nový>jiný....
V dialogovém okně Vybrat průvodce vyberte Scala Wizards>Scala Object. Pak vyberte Další.
V dialogovém okně Vytvořit nový soubor zadejte název objektu a pak vyberte Dokončit. Otevře se textový editor.
V textovém editoru nahraďte aktuální obsah následujícím kódem:
import org.apache.spark.SparkConf import org.apache.spark.SparkContext object MyClusterApp{ def main (arg: Array[String]): Unit = { val conf = new SparkConf().setAppName("MyClusterApp") val sc = new SparkContext(conf) val rdd = sc.textFile("wasbs:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv") //find the rows that have only one digit in the seventh column in the CSV val rdd1 = rdd.filter(s => s.split(",")(6).length() == 1) rdd1.saveAsTextFile("wasbs:///HVACOut") } }
Spusťte aplikaci v clusteru HDInsight Spark:
a. V Průzkumníku balíčků klikněte pravým tlačítkem myši na název projektu a pak vyberte Odeslat aplikaci Spark do HDInsightu.
b. V dialogovém okně Odeslání Sparku zadejte následující hodnoty a pak vyberte Odeslat:
Jako název clusteru vyberte cluster HDInsight Spark, na kterém chcete aplikaci spustit.
Vyberte artefakt z projektu Eclipse nebo ho vyberte z pevného disku. Výchozí hodnota závisí na položce, na kterou kliknete pravým tlačítkem v Průzkumníku balíčků.
V rozevíracím seznamu Název hlavní třídy zobrazí průvodce odesláním všechny názvy objektů z projektu. Vyberte nebo zadejte, který chcete spustit. Pokud jste vybrali artefakt z pevného disku, musíte zadat název hlavní třídy ručně.
Vzhledem k tomu, že kód aplikace v tomto příkladu nevyžaduje žádné argumenty příkazového řádku ani odkazy na soubory nebo soubory, můžete zbývající textová pole ponechat prázdná.
Na kartě Odeslání Sparku by se měl začít zobrazovat průběh. Aplikaci můžete zastavit tak, že v okně Pro odeslání Sparku vyberete červené tlačítko. Protokoly pro tuto konkrétní aplikaci můžete zobrazit také tak, že vyberete ikonu zeměkoule (označenou modrým rámečkem na obrázku).
Přístup ke clusterům HDInsight Spark a jejich správa pomocí nástrojů HDInsight v sadě Azure Toolkit for Eclipse
Různé operace můžete provádět pomocí nástrojů HDInsight, včetně přístupu k výstupu úlohy.
Přístup k zobrazení úlohy
V Azure Exploreru rozbalte HDInsight, pak název clusteru Spark a pak vyberte Úlohy.
Vyberte uzel Úlohy. Pokud je verze Java nižší než 1.8, nástroje HDInsight vám automaticky připomenou, že nainstalujete plug-in E(fx)clipse . Pokračujte tak, že vyberete OK a pak ho podle průvodce nainstalujete z Eclipse Marketplace a restartujte Eclipse.
Otevřete zobrazení úlohy z uzlu Úlohy . V pravém podokně se na kartě Zobrazení úloh Sparku zobrazí všechny aplikace spuštěné v clusteru. Vyberte název aplikace, pro kterou chcete zobrazit další podrobnosti.
Pak můžete provést některou z těchto akcí:
Najetí myší na graf úlohy Zobrazí základní informace o spuštěné úloze. Vyberte graf úlohy a můžete zobrazit fáze a informace, které každá úloha generuje.
Výběrem karty Protokol zobrazíte často používané protokoly, včetně Driver Stderr, Driver Stdout a Directory Info.
Otevřete uživatelské rozhraní historie Sparku a uživatelské rozhraní Apache Hadoop YARN (na úrovni aplikace) výběrem hypertextových odkazů v horní části okna.
Přístup ke kontejneru úložiště pro cluster
V Azure Exploreru rozbalte kořenový uzel HDInsight a zobrazte seznam dostupných clusterů HDInsight Spark.
Rozbalením názvu clusteru zobrazte účet úložiště a výchozí kontejner úložiště pro cluster.
Vyberte název kontejneru úložiště přidružený ke clusteru. V pravém podokně poklikejte na složku TVKOut . Otevřete jeden z part-souborů, abyste viděli výstup aplikace.
Přístup k serveru historie Sparku
V Azure Exploreru klikněte pravým tlačítkem na název clusteru Spark a pak vyberte Otevřít uživatelské rozhraní historie Sparku. Po zobrazení výzvy zadejte přihlašovací údaje správce clusteru. Zadali jste je při zřizování clusteru.
Na řídicím panelu serveru historie Sparku použijete název aplikace k vyhledání aplikace, kterou jste právě dokončili. V předchozím kódu nastavíte název aplikace pomocí .
val conf = new SparkConf().setAppName("MyClusterApp")
Proto název vaší aplikace Spark byl MyClusterApp.
Spuštění portálu Apache Ambari
V Azure Exploreru klikněte pravým tlačítkem na název clusteru Spark a pak vyberte Otevřít portál pro správu clusteru (Ambari).
Po zobrazení výzvy zadejte přihlašovací údaje správce clusteru. Zadali jste je při zřizování clusteru.
Správa předplatných Azure
Ve výchozím nastavení obsahuje nástroj HDInsight v sadě Azure Toolkit for Eclipse seznam clusterů Spark ze všech vašich předplatných Azure. V případě potřeby můžete zadat předplatná, pro která chcete získat přístup ke clusteru.
V Azure Exploreru klikněte pravým tlačítkem na kořenový uzel Azure a pak vyberte Spravovat předplatná.
V dialogovém okně zrušte zaškrtnutí políček u předplatného, ke kterému nechcete přistupovat, a pak vyberte Zavřít. Pokud se chcete odhlásit ze svého předplatného Azure, můžete také vybrat možnost Odhlásit se.
Místní spuštění aplikace Spark Scala
Pomocí nástrojů HDInsight v sadě Azure Toolkit for Eclipse můžete spouštět aplikace Spark Scala místně na pracovní stanici. Tyto aplikace obvykle nepotřebují přístup k prostředkům clusteru, jako je kontejner úložiště, a můžete je spustit a otestovat místně.
Požadavek
Při spouštění místní aplikace Spark Scala na počítači s Windows se může zobrazit výjimka, jak je vysvětleno ve SPARK-2356. K této výjimce dochází, protože v systému Windows chybí WinUtils.exe .
Pokud chcete tuto chybu vyřešit, potřebujete Winutils.exe do umístění, jako je C:\WinUtils\bin, a pak přidejte proměnnou prostředí HADOOP_HOME a nastavte hodnotu proměnné na C\WinUtils.
Spuštění místní aplikace Spark Scala
Spusťte Eclipse a vytvořte projekt. V dialogovém okně Nový projekt proveďte následující volby a pak vyberte Další.
V průvodci novým projektem vyberte HDInsight Project>Spark ve službě HDInsight Local Run Sample (Scala). Pak vyberte Další.
Pokud chcete poskytnout podrobnosti o projektu, postupujte podle kroků 3 až 6 z předchozí části Nastavení projektu Spark Scala pro cluster HDInsight Spark.
Šablona přidá vzorový kód (LogQuery) do složky src , kterou můžete spustit místně na počítači.
Klikněte pravým tlačítkem na LogQuery.scala a vyberte Spustit jako>1 aplikace Scala. Výstup podobný tomuto se zobrazí na kartě Konzola :
Role jen pro čtení
Když uživatelé odešlou úlohu do clusteru s oprávněním role jen pro čtení, vyžaduje se přihlašovací údaje Ambari.
Propojení clusteru z místní nabídky
Přihlaste se pomocí účtu role jen pro čtení.
V Azure Exploreru rozbalte HDInsight a zobrazte clustery HDInsight, které jsou ve vašem předplatném. Clustery označené jako Role:Reader mají pouze oprávnění role jen pro čtení.
Klikněte pravým tlačítkem na cluster s oprávněním jen pro čtení. Vyberte Propojit tento cluster z místní nabídky pro propojení clusteru. Zadejte uživatelské jméno a heslo Ambari.
Pokud je cluster úspěšně propojený, služba HDInsight se aktualizuje. Fáze clusteru se propojila.
Propojení clusteru rozbalením uzlu Úlohy
Klikněte na uzel Úlohy , zobrazí se okno Odepření přístupu k úloze clusteru.
Kliknutím na Propojit tento cluster propojte cluster.
Propojení clusteru z okna odeslání Sparku
Vytvořte projekt HDInsight.
Klikněte pravým tlačítkem myši na balíček. Pak vyberte Odeslat aplikaci Spark do HDInsightu.
Vyberte cluster, který má oprávnění role jen pro čtení pro název clusteru. Zobrazí se zpráva upozornění. Kliknutím na Propojit tento cluster můžete propojit cluster.
Zobrazení účtů úložiště
U clusterů s oprávněním role jen pro čtení klikněte na uzel Účty úložiště, zobrazí se okno Odepření přístupu k úložišti.
U propojených clusterů klikněte na uzel Účty úložiště, zobrazí se okno Odepření přístupu k úložišti.
Známé problémy
Při použití clusteru Propojit A bych vám doporučil poskytnout přihlašovací údaje úložiště.
Úlohy se odesílají dvěma režimy. Pokud je k dispozici přihlašovací údaje úložiště, použije se k odeslání úlohy dávkový režim. Jinak se použije interaktivní režim. Pokud je cluster zaneprázdněný, může se zobrazit následující chyba.
Viz také
Scénáře
- Apache Spark s BI: Provádění interaktivní analýzy dat pomocí Sparku ve službě HDInsight s nástroji BI
- Apache Spark se strojovým Učení: Použití Sparku ve službě HDInsight k analýze teploty budovy pomocí dat TVK
- Apache Spark se strojovým Učení: Použití Sparku v HDInsight k predikci výsledků kontroly potravin
- Analýza webových protokolů pomocí Apache Sparku ve službě HDInsight
Vytvář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í
- Použití sady Azure Toolkit for IntelliJ k vytváření a odesílání aplikací Spark Scala
- Použití sady Azure Toolkit for IntelliJ k vzdálenému ladění aplikací Apache Spark prostřednictvím sítě VPN
- Použití sady Azure Toolkit for IntelliJ k vzdálenému ladění aplikací Apache Spark prostřednictvím SSH
- Použití poznámkových bloků Apache Zeppelin s clusterem Apache Spark ve službě HDInsight
- Jádra dostupná pro Poznámkový blok Jupyter v clusteru Apache Spark pro HDInsight
- Použití externích balíčků s poznámkovými bloky Jupyter
- Instalace Jupyteru do počítače a připojení ke clusteru HDInsight Spark