Azure Toolkit voor Eclipse gebruiken om Apache Spark-toepassingen te maken voor een HDInsight-cluster

Gebruik HDInsight Tools in Azure Toolkit voor Eclipse om Apache Spark-toepassingen te ontwikkelen die zijn geschreven in Scala en deze rechtstreeks vanuit de Eclipse IDE naar een Azure HDInsight Spark-cluster te verzenden. U kunt de invoegtoepassing HDInsight Tools op verschillende manieren gebruiken:

  • Een Scala Spark-toepassing ontwikkelen en verzenden in een HDInsight Spark-cluster.
  • Toegang tot uw Azure HDInsight Spark-clusterbronnen.
  • Een Scala Spark-toepassing lokaal ontwikkelen en uitvoeren.

Vereisten

Vereiste invoegtoepassingen installeren

De Azure Toolkit voor Eclipse installeren

Zie Azure Toolkit voor Eclipse installeren voor installatie-instructies.

De Scala-invoegtoepassing installeren

Wanneer u Eclipse opent, detecteert HDInsight Tools automatisch of u de Scala-invoegtoepassing hebt geïnstalleerd. Selecteer OK om door te gaan en volg de instructies voor het installeren van de invoegtoepassing vanuit Eclipse Marketplace. Start de IDE opnieuw nadat de installatie is voltooid.

Automatic installation of the Scala plug-in.

Invoegtoepassingen bevestigen

  1. Navigeer naar Help>Eclipse Marketplace....

  2. Selecteer het tabblad Geïnstalleerd .

  3. U ziet ten minste het volgende:

    • Azure Toolkit voor Eclipse-versie<>.
    • Scala IDE-versie<>.

Aanmelden bij uw Azure-abonnement

  1. Start Eclipse IDE.

  2. Ga naar Venster>Weergave>weergeven overig...>Meld u aan...

  3. Navigeer in het dialoogvenster Weergave weergeven naar Azure>Explorer en selecteer Openen.

    Apache Spark Eclipse show view.

  4. Klik in Azure Explorer met de rechtermuisknop op het Azure-knooppunt en selecteer Aanmelden.

  5. Kies in het dialoogvenster Aanmelden bij Azure de verificatiemethode, selecteer Aanmelden en voltooi het aanmeldingsproces.

    Apache Spark Eclipse Azure Sign.

  6. Nadat u bent aangemeld, worden in het dialoogvenster Uw abonnementen alle Azure-abonnementen weergegeven die zijn gekoppeld aan de referenties. Druk op Selecteren om het dialoogvenster te sluiten.

    Select Subscriptions dialog box.

  7. Navigeer vanuit Azure Explorer naar Azure>HDInsight om de HDInsight Spark-clusters onder uw abonnement te zien.

    HDInsight Spark clusters in Azure Explorer3.

  8. U kunt een clusternaamknooppunt verder uitbreiden om de resources (bijvoorbeeld opslagaccounts) te zien die zijn gekoppeld aan het cluster.

    Expanding a cluster name to see resources.

U kunt een normaal cluster koppelen met behulp van de door Ambari beheerde gebruikersnaam. Op dezelfde manier kunt u voor een HDInsight-cluster dat lid is van een domein een koppeling maken met behulp van het domein en de gebruikersnaam, zoals user1@contoso.com.

  1. Klik in Azure Explorer met de rechtermuisknop op HDInsight en selecteer Een cluster koppelen.

    Azure Explorer link cluster menu.

  2. Voer clusternaam, gebruikersnaam en wachtwoord in en selecteer OK. Voer desgewenst opslagaccount, opslagsleutel in en selecteer vervolgens Opslagcontainer voor opslagverkenner om in de linkerstructuurweergave te werken

    Link New HDInsight cluster dialog.

    Notitie

    We gebruiken de gekoppelde opslagsleutel, gebruikersnaam en wachtwoord als het cluster zowel is aangemeld in het Azure-abonnement als een cluster gekoppeld. Azure Explorer storage accounts.

    Wanneer de huidige focus zich op de opslagtoets bevindt, moet u Ctrl+TAB gebruiken om u te richten op het volgende veld in het dialoogvenster voor de gebruiker met het toetsenbord.

  3. U kunt het gekoppelde cluster zien onder HDInsight. U kunt nu een toepassing verzenden naar dit gekoppelde cluster.

    Azure Explorer hdi linked cluster.

  4. U kunt een cluster ook ontkoppelen vanuit Azure Explorer.

    Azure Explorer unlinked cluster.

Een Spark Scala-project instellen voor een HDInsight Spark-cluster

  1. Selecteer Bestand>nieuw>project...in de Eclipse IDE-werkruimte.

  2. Selecteer HDInsight Project>Spark in HDInsight (Scala) in de wizard Nieuw project. Selecteer Volgende.

    Selecting the Spark on HDInsight (Scala) project.

  3. Geef in het dialoogvenster Nieuw HDInsight Scala-project de volgende waarden op en selecteer vervolgens Volgende:

    • Voer een naam in voor het project.
    • Zorg ervoor dat In het gebied JRE een uitvoeringsomgeving JRE is ingesteld op JavaSE-1.7 of hoger.
    • In het gebied Spark-bibliotheek kunt u Maven gebruiken om de Spark SDK-optie te configureren. Ons hulpprogramma integreert de juiste versie voor Spark SDK en Scala SDK. U kunt ook handmatig de optie Spark SDK toevoegen, downloaden en Toevoegen van Spark SDK kiezen door handmatig te kiezen.

    New HDInsight Scala Project dialog box.

  4. Controleer de details in het volgende dialoogvenster en selecteer Voltooien.

Een Scala-toepassing maken voor een HDInsight Spark-cluster

  1. Vouw vanuit Package Explorer het project uit dat u eerder hebt gemaakt. Klik met de rechtermuisknop op src, selecteer Nieuw>overige....

  2. Selecteer scala-wizards>in het dialoogvenster Een wizard selecteren. Selecteer Volgende.

    Select a wizard Create a Scala Object.

  3. Voer in het dialoogvenster Nieuw bestand maken een naam in voor het object en selecteer Voltooien. Er wordt een teksteditor geopend.

    New File Wizard Create New File.

  4. Vervang in de teksteditor de huidige inhoud door de onderstaande code:

    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. Voer de toepassing uit op een HDInsight Spark-cluster:

    a. Klik in Package Explorer met de rechtermuisknop op de projectnaam en selecteer Spark-toepassing verzenden naar HDInsight.

    b. Geef in het dialoogvenster Spark-verzending de volgende waarden op en selecteer Verzenden:

    • Selecteer bij Clusternaam het HDInsight Spark-cluster waarop u de toepassing wilt uitvoeren.

    • Selecteer een artefact in het Eclipse-project of selecteer een artefact op een harde schijf. De standaardwaarde is afhankelijk van het item waarop u met de rechtermuisknop klikt vanuit Package Explorer.

    • In de vervolgkeuzelijst Naam van de hoofdklasse worden in de wizard Indienen alle objectnamen uit uw project weergegeven. Selecteer of voer een in die u wilt uitvoeren. Als u een artefact van een harde schijf hebt geselecteerd, moet u de naam van de hoofdklasse handmatig invoeren.

    • Omdat voor de toepassingscode in dit voorbeeld geen opdrachtregelargumenten of verwijzingen naar JAR's of bestanden zijn vereist, kunt u de resterende tekstvakken leeg laten.

      Apache Spark Submission dialog box.

  6. Het tabblad Spark-indiening moet beginnen met het weergeven van de voortgang. U kunt de toepassing stoppen door de rode knop te selecteren in het venster Spark-indiening . U kunt de logboeken voor deze specifieke toepassing ook bekijken door het wereldbolpictogram te selecteren (aangeduid met het blauwe vak in de afbeelding).

    Apache Spark Submission window.

HDInsight Spark-clusters openen en beheren met behulp van HDInsight Tools in Azure Toolkit voor Eclipse

U kunt verschillende bewerkingen uitvoeren met behulp van HDInsight Tools, waaronder toegang tot de taakuitvoer.

Toegang tot de taakweergave

  1. Vouw in Azure Explorer HDInsight uit, vervolgens de naam van het Spark-cluster en selecteer vervolgens Taken.

    Azure Explorer Eclipse job view node.

  2. Selecteer het knooppunt Taken . Als de Java-versie lager is dan 1.8, herinnert HDInsight Tools u er automatisch aan dat u de invoegtoepassing E(fx)clipse installeert. Selecteer OK om door te gaan en volg de wizard om deze te installeren vanuit Eclipse Marketplace en start Eclipse opnieuw.

    Install missing plugin E(fx)clipse.

  3. Open de taakweergave vanuit het knooppunt Taken . In het rechterdeelvenster worden op het tabblad Spark-taakweergave alle toepassingen weergegeven die op het cluster zijn uitgevoerd. Selecteer de naam van de toepassing waarvoor u meer details wilt zien.

    Apache Eclipse view job logs details.

    U kunt vervolgens een van deze acties uitvoeren:

    • Beweeg de muisaanwijzer over de taakgrafiek. Er wordt basisinformatie over de actieve taak weergegeven. Selecteer de taakgrafiek en u kunt de fasen en informatie zien die door elke taak worden gegenereerd.

      Apache Spark job graph stage info.

    • Selecteer het tabblad Logboek om veelgebruikte logboeken weer te geven, waaronder Driver Stderr, Driver Stdout en Directory Info.

      Apache Spark Eclipse job log info.

    • Open de gebruikersinterface voor Spark-geschiedenis en de Apache Hadoop YARN-gebruikersinterface (op toepassingsniveau) door de hyperlinks boven aan het venster te selecteren.

Toegang tot de opslagcontainer voor het cluster

  1. Vouw in Azure Explorer het HDInsight-hoofdknooppunt uit om een lijst weer te geven met HDInsight Spark-clusters die beschikbaar zijn.

  2. Vouw de clusternaam uit om het opslagaccount en de standaardopslagcontainer voor het cluster te zien.

    Storage account and default storage container.

  3. Selecteer de naam van de opslagcontainer die is gekoppeld aan het cluster. Dubbelklik in het rechterdeelvenster op de map HVACOut . Open een van de onderdeelbestanden om de uitvoer van de toepassing te bekijken.

Toegang tot de Spark-geschiedenisserver

  1. Klik in Azure Explorer met de rechtermuisknop op de naam van uw Spark-cluster en selecteer vervolgens de gebruikersinterface voor Spark-geschiedenis openen. Wanneer u hierom wordt gevraagd, voert u de beheerdersreferenties voor het cluster in. U hebt deze opgegeven tijdens het inrichten van het cluster.

  2. In het dashboard van de Spark-geschiedenisserver gebruikt u de naam van de toepassing om te zoeken naar de toepassing die u zojuist hebt uitgevoerd. In de voorgaande code stelt u de naam van de toepassing in met behulp van val conf = new SparkConf().setAppName("MyClusterApp"). De naam van uw Spark-toepassing was dus MyClusterApp.

De Apache Ambari-portal starten

  1. Klik in Azure Explorer met de rechtermuisknop op de naam van uw Spark-cluster en selecteer Vervolgens Open Cluster Management Portal (Ambari).

  2. Wanneer u hierom wordt gevraagd, voert u de beheerdersreferenties voor het cluster in. U hebt deze opgegeven tijdens het inrichten van het cluster.

Azure-abonnementen beheren

Standaard geeft HDInsight Tool in Azure Toolkit voor Eclipse de Spark-clusters van al uw Azure-abonnementen weer. Indien nodig kunt u de abonnementen opgeven waarvoor u toegang wilt krijgen tot het cluster.

  1. Klik in Azure Explorer met de rechtermuisknop op het Azure-hoofdknooppunt en selecteer Abonnementen beheren.

  2. Schakel in het dialoogvenster de selectievakjes uit voor het abonnement dat u niet wilt openen en selecteer vervolgens Sluiten. U kunt afmelden ook selecteren als u zich wilt afmelden bij uw Azure-abonnement.

Een Spark Scala-toepassing lokaal uitvoeren

U kunt HDInsight Tools in Azure Toolkit for Eclipse gebruiken om Spark Scala-toepassingen lokaal op uw werkstation uit te voeren. Deze toepassingen hebben doorgaans geen toegang nodig tot clusterbronnen, zoals een opslagcontainer, en u kunt ze lokaal uitvoeren en testen.

Vereiste

Terwijl u de lokale Spark Scala-toepassing uitvoert op een Windows-computer, krijgt u mogelijk een uitzondering zoals uitgelegd in SPARK-2356. Deze uitzondering treedt op omdat WinUtils.exe ontbreekt in Windows.

Als u deze fout wilt oplossen, moet u Winutils.exe naar een locatie zoals C:\WinUtils\bin, en vervolgens de omgevingsvariabele HADOOP_HOME toevoegen en de waarde van de variabele instellen op C\WinUtils.

Een lokale Spark Scala-toepassing uitvoeren

  1. Start Eclipse en maak een project. Maak in het dialoogvenster Nieuw project de volgende keuzes en selecteer vervolgens Volgende.

  2. Selecteer in de wizard Nieuw project HDInsight Project>Spark in HDInsight Local Run Sample (Scala). Selecteer Volgende.

    New project selects a wizard dialog.

  3. Volg stap 3 tot en met 6 uit de eerdere sectie Een Spark Scala-project instellen voor een HDInsight Spark-cluster om de projectdetails op te geven.

  4. Met de sjabloon wordt een voorbeeldcode (LogQuery) toegevoegd onder de src-map die u lokaal op uw computer kunt uitvoeren.

    Location of LogQuery local scala application.

  5. Klik met de rechtermuisknop op LogQuery.scala en selecteer Uitvoeren als>1 Scala-toepassing. Uitvoer zoals deze wordt weergegeven op het tabblad Console :

    Spark application local run result.

Rol alleen lezer

Wanneer gebruikers een taak verzenden naar een cluster met alleen-lezenrolmachtigingen, zijn Ambari-referenties vereist.

  1. Meld u aan met het rolaccount alleen-lezen.

  2. Vouw vanuit Azure Explorer HDInsight uit om HDInsight-clusters weer te geven die zich in uw abonnement bevinden. De clusters die als Rol:Lezer zijn gemarkeerd , hebben alleen de rolmachtigingen van de lezer.

    HDInsight Spark clusters in Azure Explorer role reader.

  3. Klik met de rechtermuisknop op het cluster met de machtiging alleen-lezenrol. Selecteer Dit cluster koppelen in het contextmenu om het cluster te koppelen. Voer de Ambari-gebruikersnaam en het wachtwoord in.

    HDInsight Spark clusters in Azure Explorer link.

  4. Als het cluster is gekoppeld, wordt HDInsight vernieuwd. De fase van het cluster wordt gekoppeld.

    HDInsight Spark clusters in Azure Explorer linked.

  1. Klik op het knooppunt Jobs , het venster Clustertaaktoegang geweigerd wordt weergegeven.

  2. Klik op Dit cluster koppelen om het cluster te koppelen.

    HDInsight Spark clusters in Azure Explorer9.

  1. Maak een HDInsight-project.

  2. Klik met de rechtermuisknop op het pakket. Selecteer vervolgens Spark-toepassing verzenden naar HDInsight.

    HDInsight Spark clusters in Azure Explorer submit.

  3. Selecteer een cluster dat alleen-lezenrolmachtigingen heeft voor clusternaam. Waarschuwingsbericht wordt weergegeven. U kunt op Dit cluster koppelen klikken om het cluster te koppelen.

    HDInsight Spark clusters in Azure Explorer link this.

Opslagaccounts weergeven

  • Klik voor clusters met de machtiging alleen-lezenrol op Het knooppunt Opslagaccounts , het venster Toegang geweigerd voor opslag wordt weergegeven.

    HDInsight Spark clusters in Azure Explorer storage.

    HDInsight Spark clusters in Azure Explorer denied.

  • Klik voor gekoppelde clusters op het knooppunt Opslagaccounts , het venster Toegang geweigerd voor opslag wordt weergegeven.

    HDInsight Spark clusters in Azure Explorer denied2.

Bekende problemen

Wanneer u Een cluster koppelen gebruikt, zou ik u voorstellen om de opslagreferentie op te geven.

link cluster with storage credential eclipses.

Er zijn twee modi om de taken in te dienen. Als er opslagreferenties worden opgegeven, wordt de batchmodus gebruikt om de taak te verzenden. Anders wordt de interactieve modus gebruikt. Als het cluster bezet is, krijgt u mogelijk de onderstaande fout.

eclipse get error when cluster busy.

eclipse get error when cluster busy yarn.

Zie ook

Scenario's

Toepassingen maken en uitvoeren

Tools en uitbreidingen

Resources beheren