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

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).

Automatic installation of the Scala plug-in.

Potvrzení modulů plug-in

  1. Přejděte do nápovědy>k Eclipse Marketplace....

  2. Vyberte kartu Nainstalováno.

  3. 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.

  1. Spusťte integrované vývojové prostředí Eclipse.

  2. Přejděte do >okna Zobrazit jiné...>>Přihlaste se...

  3. V dialogovém okně Zobrazit zobrazení přejděte do Azure>Exploreru a pak vyberte Otevřít.

    Apache Spark Eclipse show view.

  4. V Azure Exploreru klikněte pravým tlačítkem na uzel Azure a pak vyberte Přihlásit se.

  5. 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í.

    Apache Spark Eclipse Azure Sign.

  6. 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 .

    Select Subscriptions dialog box.

  7. V Azure Exploreru přejděte do Služby Azure>HDInsight a zobrazte clustery HDInsight Spark v rámci vašeho předplatného.

    HDInsight Spark clusters in Azure Explorer3.

  8. Dále můžete rozbalit uzel názvu clusteru a zobrazit prostředky (například účty úložiště) přidružené ke clusteru.

    Expanding a cluster name to see resources.

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.

  1. V Azure Exploreru klikněte pravým tlačítkem na HDInsight a vyberte Propojit cluster.

    Azure Explorer link cluster menu.

  2. 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í.

    Link New HDInsight cluster dialog.

    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. Azure Explorer storage accounts.

    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ě.

  3. Uvidíte propojený cluster v hdInsightu. Teď můžete odeslat aplikaci do tohoto propojeného clusteru.

    Azure Explorer hdi linked cluster.

  4. Cluster můžete také odpojit od Azure Exploreru.

    Azure Explorer unlinked cluster.

Nastavení projektu Spark Scala pro cluster HDInsight Spark

  1. V pracovním prostoru integrovaného vývojového prostředí Eclipse vyberte Soubor>nový>projekt....

  2. V průvodci novým projektem vyberte HDInsight Project>Spark ve službě HDInsight (Scala). Pak vyberte Další.

    Selecting the Spark on HDInsight (Scala) project.

  3. 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ě.

    New HDInsight Scala Project dialog box.

  4. V dalším dialogovém okně zkontrolujte podrobnosti a pak vyberte Dokončit.

Vytvoření aplikace Scala pro cluster HDInsight Spark

  1. 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ý....

  2. V dialogovém okně Vybrat průvodce vyberte Scala Wizards>Scala Object. Pak vyberte Další.

    Select a wizard Create a Scala Object.

  3. V dialogovém okně Vytvořit nový soubor zadejte název objektu a pak vyberte Dokončit. Otevře se textový editor.

    New File Wizard Create New File.

  4. 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")
        }
    }
    
  5. 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á.

      Apache Spark Submission dialog box.

  6. 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).

    Apache Spark Submission window.

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

  1. V Azure Exploreru rozbalte HDInsight, pak název clusteru Spark a pak vyberte Úlohy.

    Azure Explorer Eclipse job view node.

  2. 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.

    Install missing plugin E(fx)clipse.

  3. 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.

    Apache Eclipse view job logs details.

    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.

      Apache Spark job graph stage info.

    • Výběrem karty Protokol zobrazíte často používané protokoly, včetně Driver Stderr, Driver Stdout a Directory Info.

      Apache Spark Eclipse job log 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

  1. V Azure Exploreru rozbalte kořenový uzel HDInsight a zobrazte seznam dostupných clusterů HDInsight Spark.

  2. Rozbalením názvu clusteru zobrazte účet úložiště a výchozí kontejner úložiště pro cluster.

    Storage account and default storage container.

  3. 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

  1. 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.

  2. 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

  1. 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).

  2. 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.

  1. V Azure Exploreru klikněte pravým tlačítkem na kořenový uzel Azure a pak vyberte Spravovat předplatná.

  2. 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

  1. Spusťte Eclipse a vytvořte projekt. V dialogovém okně Nový projekt proveďte následující volby a pak vyberte Další.

  2. V průvodci novým projektem vyberte HDInsight Project>Spark ve službě HDInsight Local Run Sample (Scala). Pak vyberte Další.

    New project selects a wizard dialog.

  3. Pokud chcete poskytnout podrobnosti o projektu, postupujte podle kroků 3 až 6 z předchozí části Nastavení projektu Spark Scala pro cluster HDInsight Spark.

  4. Šablona přidá vzorový kód (LogQuery) do složky src , kterou můžete spustit místně na počítači.

    Location of LogQuery local scala application.

  5. 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 :

    Spark application local run result.

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.

  1. Přihlaste se pomocí účtu role jen pro čtení.

  2. 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í.

    HDInsight Spark clusters in Azure Explorer role reader.

  3. 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.

    HDInsight Spark clusters in Azure Explorer link.

  4. Pokud je cluster úspěšně propojený, služba HDInsight se aktualizuje. Fáze clusteru se propojila.

    HDInsight Spark clusters in Azure Explorer linked.

  1. Klikněte na uzel Úlohy , zobrazí se okno Odepření přístupu k úloze clusteru.

  2. Kliknutím na Propojit tento cluster propojte cluster.

    HDInsight Spark clusters in Azure Explorer9.

  1. Vytvořte projekt HDInsight.

  2. Klikněte pravým tlačítkem myši na balíček. Pak vyberte Odeslat aplikaci Spark do HDInsightu.

    HDInsight Spark clusters in Azure Explorer submit.

  3. 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.

    HDInsight Spark clusters in Azure Explorer link this.

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.

    HDInsight Spark clusters in Azure Explorer storage.

    HDInsight Spark clusters in Azure Explorer denied.

  • U propojených clusterů klikněte na uzel Účty úložiště, zobrazí se okno Odepření přístupu k úložišti.

    HDInsight Spark clusters in Azure Explorer denied2.

Známé problémy

Při použití clusteru Propojit A bych vám doporučil poskytnout přihlašovací údaje úložiště.

link cluster with storage credential eclipses.

Ú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.

eclipse get error when cluster busy.

eclipse get error when cluster busy yarn.

Viz také

Scénáře

Vytváření a spouštění aplikací

Nástroje a rozšíření

Správa prostředků