Sdílet prostřednictvím


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

Nainstalujte požadované pluginy

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

automatická instalace modulu plug-in Scala.

Potvrďte zásuvné moduly

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

  2. Vyberte kartu Nainstalovaná.

  3. Měli byste vidět alespoň:

    • Azure Toolkit for Eclipse <verze>.
    • Scala IDE verze <>.

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 zobrazení>Jiné...>Přihlásit se...

  3. V dialogovém okně Zobrazit přejděte na Azure>Azure Explorera pak vyberte Otevřít.

    zobrazení pohledu Apache Spark Eclipse.

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

  5. V dialogovém okně přihlášení k Azure zvolte metodu ověřování, vyberte Přihlášenía dokončete proces přihlášení.

    Apache Spark Eclipse Azure Signatura.

  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. Stiskněte , vyberte a zavřete dialogové okno.

    Dialogové okno pro výběr předplatného

  7. V Azure Explorerupřejděte na azure>HDInsight a prohlédněte si clustery HDInsight Spark v rámci vašeho předplatného.

    clustery HDInsight Spark v Azure Exploreru 3.

  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.

    Rozbalování názvu clusteru pro zobrazení prostředků.

Normální cluster můžete propojit pomocí spravovaného uživatelského jména Ambari. Podobně můžete propojit cluster HDInsight připojený k doméně pomocí domény a uživatelského jména, například user1@contoso.com.

  1. V Průzkumníku Azureklikněte pravým tlačítkem na HDInsighta vyberte Propojit cluster.

    nabídku clusteru propojení Azure Exploreru.

  2. Zadejte název clusteru, uživatelské jménoa hesloa 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í.

    Dialogové okno pro propojení nového clusteru HDInsight.

    Poznámka:

    Použijeme propojený klíč úložiště, uživatelské jméno a heslo, pokud je cluster přihlášen k předplatnému Azure a je propojen se clusterem. účty úložiště Azure Exploreru.

    Pokud je aktuální fokus na klávesy Storage, musíte použít Ctrl+TAB, abyste se mohli zaměřit na další pole v dialogovém okně.

  3. Propojený cluster můžete zobrazit pod HDInsight. Teď můžete odeslat aplikaci do tohoto propojeného clusteru.

    clusteru propojeného Azure Explorerem hdi.

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

    clusteru, který není propojený s Azure Explorerem

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ý projekt vyberte HDInsight Projekt>Spark na HDInsight (Scala). Pak vyberte Další.

    Vybrání projektu Spark ve službě HDInsight (Scala).

  3. V dialogovém okně Nový projekt HDInsight Scala zadejte následující hodnoty a pak vyberte Další:

    • Zadejte název projektu.
    • V oblasti prostředí JRE se ujistěte, že Použití spouštěcího prostředí JRE je nastaveno na JavaSE-1.7 nebo novější.
    • V oblasti knihovny Sparku můžete zvolit Pomocí Mavenu nakonfigurovat sadu Spark SDK. Náš nástroj integruje správnou verzi sady Spark SDK a Scala SDK. Můžete také zvolit možnost Přidat sadu Spark SDK ručně, stáhnout a přidat sadu Spark SDK ručně.

    dialogové okno pro nový projekt HDInsight Scala.

  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 na src, vyberte Nový>Jiný....

  2. V dialogovém okně Vyberte průvodce vyberte Průvodci Scala>objektu Scala. Pak vyberte Další.

    Vyberte průvodce Vytvořit objekt Scala.

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

    Průvodce novým souborem Vytvořit nový soubor.

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

    b) V dialogovém okně Spark Submission zadejte následující hodnoty a pak vyberte Odeslat:

    • Jako název clusteruvyberte 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 průvodce odesláním zobrazí veškeré názvy objektů z vašeho 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 JARy nebo soubory, můžete zbývající textová pole ponechat prázdná.

      dialogové okno Odeslání Apache Sparku.

  6. Na kartě Spark Submission by se měl začít zobrazovat průběh. Aplikaci můžete zastavit kliknutím na červené tlačítko v okně Spark Submission. 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).

    okno pro odeslání Apache Spark.

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 Explorerurozbalte HDInsight, pak název clusteru Spark, a pak vyberte Úlohy.

    uzlu zobrazení úlohy Eclipse v Azure Exploreru.

  2. Vyberte uzel Úlohy. Pokud je verze Javy nižší než 1.8, nástroje HDInsight vás automaticky upozorní na nutnost instalace pluginu E(fx)clipse. Pokračujte výběrem OK a pak postupujte podle průvodce a nainstalujte ho z Eclipse Marketplace a restartujte Eclipse.

    Nainstalujte chybějící plugin E(fx)clipse.

  3. Otevřete Job View z uzlu Jobs. 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.

    podrobnosti o protokolech úloh systému Apache a Eclipse

    Pak můžete provést některou z těchto akcí:

    • Přejeďte myší nad grafem práce. Zobrazí základní údaje o spuštěné úloze. Vyberte graf úlohy a můžete zobrazit fáze a informace, které každá úloha generuje.

      Informace o fázi grafu úlohy Apache Spark.

    • Vyberte kartu protokolu a zobrazte často používané protokoly, včetně Driver Stderr, Driver Stdouta Directory Info.

      informace o protokolu úloh Apache Spark Eclipse.

    • 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 HDInsight kořenový uzel a zobrazte seznam dostupných clusterů HDInsight Spark.

  2. Kliknutím na název clusteru zobrazíte účet úložiště a výchozí úložný kontejner pro cluster.

    účet úložiště a výchozí kontejner úložiště.

  3. Vyberte název kontejneru úložiště přidružený ke clusteru. V pravém podokně poklikejte na složku HVACOut. Otevřete jeden z souborů, abyste viděli výstup aplikace.

Přístup k serveru historie Sparku

  1. V Azure Exploreru klikněte pravým tlačítkem myši na název clusteru Spark a poté vyberte Otevřít uživatelské rozhraní historie Spark. 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"). Název aplikace Spark byl tedy 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 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ě.

Předpoklad

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 v 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ý projekt vyberte projekt HDInsight>Spark na HDInsight Local Run Sample (Scala). Pak vyberte Další.

    Nový projekt vybere dialogové okno průvodce.

  3. Pokud chcete zadat 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 svém počítači.

    umístění místní aplikace Scala LogQuery.

  5. Klikněte pravým tlačítkem na LogQuery.scala a vyberte Spustit jako>1aplikace Scala . Výstup podobný tomuto se zobrazí na kartě konzoly:

    výsledek místního spuštění aplikace Spark.

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 Explorerurozbalte HDInsight a zobrazte clustery HDInsight, které jsou ve vašem předplatném. Clustery označené Role:Reader mají pouze oprávnění role jen pro čtení.

    HDInsight Spark clustery v Azure Exploreru jako čtečka rolí.

  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.

    clustery HDInsight Spark v odkazu Azure Explorer.

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

    HDInsight Spark clustery propojené v Azure Exploreru.

  1. Klikněte na Uzly úloh, objeví se okno Odepření přístupu k úloze clusteru.

  2. Klikněte na pro propojení clusteru.

    clustery HDInsight Spark v Azure Exploreru 9.

  1. Vytvořte projekt HDInsight.

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

    Odeslat clustery HDInsight Spark v Azure Exploreru.

  3. Vyberte cluster, který má oprávnění role pro čtení pro název clustera . Zobrazí se varovná zpráva. K propojení klastru můžete kliknout na Propojit tento klastr.

    clustery HDInsight Spark jsou propojeny v Azure Exploreru.

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řístup k úložišti.

    klastry HDInsight Spark v úložišti Azure Explorer.

    clustery HDInsight Spark v Azure Exploreru byly odepřeny.

  • U propojených clusterů klikněte na uzel Účty úložiště a objeví se okno Přístup k úložišti byl odepřen.

    clustery HDInsight Spark v Azure Exploreru byly odepřeny2.

Známé problémy

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

propojit cluster s zatměním přihlašovacích údajů úložiště.

Existují dvě možnosti, jak úlohy odesílat. 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 dojde k chybě, když je cluster vytížen.

Eclipse vykazuje chybu, když je cluster zaneprázdněn YARN.

Viz také

Scénáře

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

Nástroje a rozšíření

Správa prostředků