Delen via


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.

Vereiste voorwaarden

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.

Automatische installatie van de Scala-invoegtoepassing.

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-weergave tonen.

  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.

    Selecteer het dialoogvenster Abonnementen.

  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.

    Een clusternaam uitbreiden om resources weer te geven.

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.

    Menu Koppelingscluster in Azure Explorer.

  2. Voer clusternaam, gebruikersnaam en wachtwoord in en selecteer OK. Voer desgewenst het opslagaccount en de opslagsleutel in, en selecteer vervolgens de opslagcontainer, zodat de opslagverkenner in de linkerboomstructuur kan werken.

    Dialoogvenster voor koppelen van nieuw HDInsight-cluster.

    Opmerking

    We gebruiken de gekoppelde opslagsleutel, gebruikersnaam en wachtwoord wanneer het cluster zowel is aangemeld bij het Azure-abonnement als wanneer een cluster is gekoppeld. Azure Explorer-opslagaccounts.

    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 gekoppeld cluster.

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

    Azure Explorer niet-gekoppeld cluster.

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

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

  2. In de wizard Nieuw Project selecteer HDInsight Project>Spark op HDInsight (Scala). Klik vervolgens op Volgende.

    Het Spark-project in HDInsight (Scala) selecteren.

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

    • Voer een naam in voor het project.
    • In het JRE gebied, zorg ervoor dat 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 de optie Spark SDK handmatig toevoegen kiezen, downloaden en Spark SDK handmatig toevoegen.

    Dialoogvenster Nieuw HDInsight Scala-project.

  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. In het dialoogvenster Een wizard selecteren, selecteer Scala Wizards>Scala Object. Klik vervolgens op Volgende.

    Selecteer een wizard Een Scala-object maken.

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

    Wizard Nieuw bestand maken.

  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 Hoofdklassenaam worden in de indienwizard 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.

      Dialoogvenster Apache Spark-verzending.

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

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 ExplorerHDInsight uit, en vervolgens de Spark-clusternaam, en selecteer daarna Taken.

    Azure Explorer Eclipse-taakweergaveknooppunt.

  2. Selecteer de Jobs node. 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.

    Installeer ontbrekende invoegtoepassing 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.

    Details van taaklogboeken van Apache Eclipse weergeven.

    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.

      Fasegegevens van Apache Spark-taakgrafiek.

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

      Gegevens van het Apache Spark Eclipse-taaklogboek.

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

    Opslagaccount en standaardopslagcontainer.

  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.

Voorwaarde

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 toevoegen HADOOP_HOME 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 projectHDInsight Project>Spark op HDInsight Local Run Sample (Scala). Klik vervolgens op Volgende.

    Nieuw project selecteert een wizarddialoogvenster.

  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 in de map src, die lokaal op uw computer kan worden uitgevoerd.

    Locatie van lokale Scala-toepassing van LogQuery.

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

    Resultaat van lokale uitvoering van Spark-toepassing.

Alleen lezer-rol

Wanneer gebruikers een taak verzenden naar een cluster met alleen-lezen rechten, zijn Ambari-aanmeldgegevens vereist.

  1. Meld u aan met een account voor alleen-lezen.

  2. Vouw vanuit Azure ExplorerHDInsight 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 de Azure Explorer-rollezer.

  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.

    Koppeling naar HDInsight Spark-clusters in Azure Explorer.

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

    Gekoppelde HDInsight Spark-clusters in Azure Explorer.

  1. Klik op de knop Jobs, er verschijnt een venster Clustertaaktoegang geweigerd.

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

  3. Selecteer een cluster dat alleen-lezen machtigingen heeft voor Cluster Naam. Waarschuwingsbericht wordt weergegeven. U kunt op Dit cluster koppelen klikken om het cluster te koppelen.

    HDInsight Spark-clusters in Azure Explorer koppelen dit.

Opslagaccounts weergeven

  • Klik voor clusters met de alleen-lezer machtiging op de Opslagaccounts node en het venster Opslagtoegang geweigerd verschijnt.

    HDInsight Spark-clusters in Azure Explorer-opslagruimte.

    HDInsight Spark-clusters in Azure Explorer zijn geweigerd.

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

    HDInsight Spark-clusters in Azure Explorer geweigerd2.

Bekende problemen

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

cluster koppelen met opslaggegevens die overschaduwen.

Er zijn twee manieren 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 foutmelding hieronder.

eclipse krijgt een foutmelding wanneer het cluster bezet is.

Eclipse geeft een foutmelding als het cluster bezet is met Yarn.

Zie ook

Scenariën

Toepassingen maken en uitvoeren

Hulpmiddelen en extensies

Middelen beheren