Tutorial: Erstellen von Apache Spark-Anwendungen für einen HDInsight-Cluster mit dem Azure-Toolkit für IntelliJTutorial: Use Azure Toolkit for IntelliJ to create Apache Spark applications for an HDInsight cluster

Dieses Tutorial zeigt, wie Sie mit dem Plug-In „Azure-Toolkit für IntelliJ“ in Scala geschriebene Apache Spark-Anwendungen entwickeln und dann direkt aus der IntelliJ-IDE (Integrated Development Environment, integrierte Entwicklungsumgebung) an einen HDInsight Spark-Cluster senden.This tutorial demonstrates how to use the Azure Toolkit for IntelliJ plug-in to develop Apache Spark applications written in Scala, and then submit them to an HDInsight Spark cluster directly from the IntelliJ integrated development environment (IDE). Sie können das Plug-In auf mehrere Arten verwenden:You can use the plug-in in a few ways:

  • Entwickeln und Übermitteln einer Scala Spark-Anwendung an einen HDInsight Spark-ClusterDevelop and submit a Scala Spark application on an HDInsight Spark cluster.
  • Zugreifen auf Ihre Azure HDInsight Spark-ClusterressourcenAccess your Azure HDInsight Spark cluster resources.
  • Entwickeln und lokales Ausführen einer Scala Spark-AnwendungDevelop and run a Scala Spark application locally.

In diesem Tutorial lernen Sie Folgendes:In this tutorial, you learn how to:

  • Verwenden des Plug-Ins „Azure-Toolkit für IntelliJ“Use the Azure Toolkit for IntelliJ plug-in
  • Entwickeln von Apache Spark-AnwendungenDevelop Apache Spark applications
  • Übermitteln der Anwendung an den Azure HDInsight-ClusterSubmit application to Azure HDInsight cluster

VoraussetzungenPrerequisites

Installieren des Scala-Plug-Ins für IntelliJ IDEAInstall Scala plugin for IntelliJ IDEA

Führen Sie die folgenden Schritte aus, um das Scala-Plug-In zu installieren:Perform the following steps to install the Scala plugin:

  1. Öffnen Sie IntelliJ IDEA.Open IntelliJ IDEA.

  2. Navigieren Sie auf der Willkommensseite zu Konfigurieren > Plug-Ins, um das Fenster Plug-Ins zu öffnen.On the welcome screen, navigate to Configure > Plugins to open the Plugins window.

    Scala-Plug-In aktivieren

  3. Wählen Sie für das in dem neuen Fenster empfohlene Scala-Plug-In die Option Installieren aus.Select Install for the Scala plugin that is featured in the new window.

    Scala-Plug-In installieren

  4. Nach erfolgreicher Plug-In-Installation müssen Sie die IDE neu starten.After the plugin installs successfully, you must restart the IDE.

Erstellen einer Spark Scala-Anwendung für einen HDInsight Spark-ClusterCreate a Spark Scala application for an HDInsight Spark cluster

  1. Starten Sie IntelliJ IDEA, und wählen Sie Create New Project (Neues Projekt erstellen) aus, um das Fenster New Project (Neues Projekt) zu öffnen.Start IntelliJ IDEA, and select Create New Project to open the New Project window.

  2. Wählen Sie im linken Bereich Azure Spark/HDInsight aus.Select Azure Spark/HDInsight from the left pane.

  3. Wählen Sie im Hauptfenster Spark Project (Scala) (Spark-Projekt (Scala)) aus.Select Spark Project (Scala) from the main window.

  4. Wählen Sie in der Dropdownliste Build tool (Buildtool) eine der folgenden Optionen aus:From the Build tool drop-down list, select one of the following:

    • Maven für die Unterstützung des Scala-Projekterstellungs-AssistentenMaven for Scala project-creation wizard support.

    • SBT zum Verwalten von Abhängigkeiten und Erstellen für das Scala-ProjektSBT for managing the dependencies and building for the Scala project.

      Dialogfeld „Neues Projekt“

  5. Klicken Sie auf Weiter.Select Next.

  6. Geben Sie im Fenster New Project (Neues Projekt) die folgenden Informationen an:In the New Project window, provide the following information:

    EigenschaftProperty BESCHREIBUNGDescription
    ProjektnameProject name Geben Sie einen Namen ein.Enter a name. In diesem Tutorial wird myApp verwendet.This tutorial uses myApp.
    Project location (Projektspeicherort)Project location Geben Sie den gewünschten Speicherort für Ihr Projekt ein.Enter the desired location to save your project.
    Project SDK (Projekt-SDK)Project SDK Dieses Feld ist bei der erstmaligen Verwendung von IDEA möglicherweise leer.This might be blank on your first use of IDEA. Wählen Sie New... (Neu...) aus, und navigieren Sie zu Ihrem JDK.Select New... and navigate to your JDK.
    Spark-VersionSpark Version Der Erstellungs-Assistent integriert die passende Version für das Spark-SDK und das Scala-SDK.The creation wizard integrates the proper version for Spark SDK and Scala SDK. Wenn die Spark-Clusterversion niedriger als 2.0 ist, wählen Sie Spark 1.x aus.If the Spark cluster version is earlier than 2.0, select Spark 1.x. Wählen Sie andernfalls Spark 2.x aus.Otherwise, select Spark2.x. In diesem Beispiel wird Spark 2.3.0 (Scala 2.11.8) verwendet.This example uses Spark 2.3.0 (Scala 2.11.8).

    Auswählen des Spark-SDK

  7. Wählen Sie Fertig stellen aus.Select Finish. Es kann einige Minuten dauern, bis das Projekt verfügbar ist.It may take a few minutes before the project becomes available.

  8. Das Spark-Projekt erstellt automatisch ein Artefakt für Sie.The Spark project automatically creates an artifact for you. Um das Artefakt anzuzeigen, gehen Sie folgendermaßen vor:To view the artifact, do the following:

    a.a. Navigieren Sie auf der Menüleiste zu Datei > Projektstruktur.From the menu bar, navigate to File > Project Structure....

    b.b. Wählen Sie im Fenster Projektstruktur die Option Artefakte aus.From the Project Structure window, select Artifacts.

    c.c. Wählen Sie Abbrechen aus, nachdem Sie das Artefakt angezeigt haben.Select Cancel after viewing the artifact.

    Informationen zum Artefakt im Dialogfeld

  9. Fügen Sie den Quellcode der Anwendung wie folgt hinzu:Add your application source code by doing the following:

    a.a. Navigieren Sie in Project zu myApp > src > main > scala.From Project, navigate to myApp > src > main > scala.

    b.b. Klicken Sie mit der rechten Maustaste auf scala, und navigieren Sie dann zu New > Scala Class (Neu > Scala-Klasse).Right-click scala, and then navigate to New > Scala Class.

    Befehle zum Erstellen einer Scala-Klasse über Project

    c.c. Geben Sie im Dialogfeld Create New Scala Class (Neue Scala-Klasse erstellen) einen Namen ein. Wählen Sie im Dropdownfeld Kind (Art) die Option Object aus, und wählen Sie dann OK aus.In the Create New Scala Class dialog box, provide a name, select Object in the Kind drop-down list, and then select OK.

    Dialogfeld „Create New Scala Class“ (Neue Scala-Klasse erstellen)

    d.d. Die Datei myApp.scala wird dann in der Hauptansicht geöffnet.The myApp.scala file then opens in the main view. Ersetzen Sie den Standardcode durch den folgenden Code:Replace the default code with the code found below:

     import org.apache.spark.SparkConf
     import org.apache.spark.SparkContext
    
     object myApp{
         def main (arg: Array[String]): Unit = {
         val conf = new SparkConf().setAppName("myApp")
         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 file
         val rdd1 =  rdd.filter(s => s.split(",")(6).length() == 1)
    
         rdd1.saveAsTextFile("wasbs:///HVACOut")
         }
    
     }
    

    Der Code liest die Daten aus der Datei „HVAC.csv“ (die für alle HDInsight Spark-Cluster verfügbar ist), ruft die Zeilen ab, die nur eine Ziffer in der siebten Spalte der CSV-Datei enthalten, und schreibt die Ausgabe in /HVACOut unter dem Standardspeichercontainer für den Cluster.The code reads the data from HVAC.csv (available on all HDInsight Spark clusters), retrieves the rows that have only one digit in the seventh column in the CSV file, and writes the output to /HVACOut under the default storage container for the cluster.

Herstellen einer Verbindung mit Ihrem HDInsight-ClusterConnect to your HDInsight cluster

Der Benutzer kann sich entweder beim Azure-Abonnement anmelden oder einen HDInsight-Cluster verknüpfen. Zum Herstellen einer Verbindung kann er entweder eine Kombination aus Ambari-Benutzername und -Kennwort oder Anmeldeinformationen verwenden, die in eine Domäne eingebunden sind.User can either sign in to Azure subscription, or link a HDInsight cluster using Ambari username/password or domain joined credential to connect to your HDInsight cluster.

Melden Sie sich bei Ihrem Azure-Abonnement an.Sign in to your Azure subscription

  1. Navigieren Sie in der Menüleiste zu Ansicht > Toolfenster > Azure Explorer.From the menu bar, navigate to View > Tool Windows > Azure Explorer.

    Link „Azure Explorer“

  2. Klicken Sie im Azure Explorer mit der rechten Maustaste auf den Knoten Azure, und wählen Sie dann Anmelden aus.From Azure Explorer, right-click the Azure node, and then select Sign In.

    Link „Azure Explorer“

  3. Wählen Sie im Dialogfeld Azure Sign In (Azure-Anmeldung) die Option Device Login (Geräteanmeldung) aus, und klicken Sie dann auf Sign in (Anmelden).In the Azure Sign In dialog box, choose Device Login, and then select Sign in.

    Dialogfeld „Azure-Anmeldung“

  4. Klicken Sie im Dialogfeld Azure Device Login (Azure-Geräteanmeldung) auf Copy&Open (Kopieren und öffnen).In the Azure Device Login dialog box, click Copy&Open.

    Dialogfeld „Azure-Anmeldung“

  5. Fügen Sie den Code auf der Benutzeroberfläche des Browsers ein, und klicken Sie auf Next (Weiter).In the browser interface, paste the code, and then click Next.

    Dialogfeld „Azure-Anmeldung“

  6. Geben Sie Ihre Azure-Anmeldeinformationen ein, und schließen Sie den Browser.Enter your Azure credentials, and then close the browser.

    Dialogfeld „Azure-Anmeldung“

  7. Nachdem Sie sich angemeldet haben, werden im Dialogfeld Abonnements auswählen alle Azure-Abonnements aufgelistet, die den Anmeldeinformationen zugeordnet sind.After you're signed in, the Select Subscriptions dialog box lists all the Azure subscriptions that are associated with the credentials. Wählen Sie das Abonnement aus, und klicken Sie dann auf die Schaltfläche Auswählen.Select your subscription and then select the Select button.

    Dialogfeld zum Auswählen von Abonnements

  8. Erweitern Sie im Azure Explorer die Option HDInsight, um die HDInsight Spark-Cluster anzuzeigen, die sich in Ihren Abonnements befinden.From Azure Explorer, expand HDInsight to view the HDInsight Spark clusters that are in your subscriptions.

    HDInsight Spark-Cluster im Azure Explorer

  9. Um die dem Cluster zugeordneten Ressourcen (z.B. Speicherkonten) anzuzeigen, können Sie einen Clusternamenknoten noch einmal erweitern.To view the resources (for example, storage accounts) that are associated with the cluster, you can further expand a cluster-name node.

    Ein erweiterter Clusternamenknoten

Sie können einen HDInsight-Cluster mithilfe des verwalteten Apache Ambari-Benutzernamens verknüpfen.You can link an HDInsight cluster by using the Apache Ambari managed username. In ähnlicher Weise können Sie einen in eine Domäne eingebundenen HDInsight-Cluster unter Verwendung von Domäne und Benutzername verknüpfen, wie etwa user1@contoso.com.Similarly, for a domain-joined HDInsight cluster, you can link by using the domain and username, such as user1@contoso.com. Sie können auch einen Livy-Dienstcluster verknüpfen.Also you can link Livy Service cluster.

  1. Navigieren Sie in der Menüleiste zu Ansicht > Toolfenster > Azure Explorer.From the menu bar, navigate to View > Tool Windows > Azure Explorer.

  2. Klicken Sie im Azure Explorer mit der rechten Maustaste auf den Knoten HDInsight, und wählen Sie dann Cluster verknüpfen aus.From Azure Explorer, right-click the HDInsight node, and then select Link A Cluster.

    Kontextmenü „Cluster verknüpfen“

  3. Die verfügbaren Optionen im Fenster Cluster verknüpfen variieren je nach dem Wert, den Sie in der Dropdownliste Ressourcentyp verknüpfen auswählen.The available options in the Link A Cluster window will vary depending on which value you select from the Link Resource Type drop-down list. Geben Sie Ihre Werte ein, und klicken Sie anschließend auf OK.Enter your values and then select OK.

    • HDInsight-ClusterHDInsight Cluster

      EigenschaftProperty WertValue
      Ressourcentyp verknüpfenLink Resource Type Wählen Sie HDInsight-Cluster aus der Dropdownliste aus.Select HDInsight Cluster from the drop-down list.
      Clustername/-URLCluster Name/URL Geben Sie einen Clusternamen ein.Enter cluster name.
      AuthentifizierungstypAuthentication Type Lassen Sie die Standardauthentifizierung festgelegt.Leave as Basic Authentication
      BenutzernameUser Name Geben Sie den Clusterbenutzernamen ein. Der Standardwert lautet „admin“.Enter cluster user name, default is admin.
      KennwortPassword Geben Sie das Kennwort für den Benutzernamen ein.Enter password for user name.

      Dialogfeld zum Verknüpfen eines HDInsight-Clusters

    • Livy ServiceLivy Service

      EigenschaftProperty WertValue
      Ressourcentyp verknüpfenLink Resource Type Wählen Sie Livy Service aus der Dropdownliste aus.Select Livy Service from the drop-down list.
      Livy-EndpunktLivy Endpoint Livy-Endpunkt eingebenEnter Livy Endpoint
      ClusternameCluster Name Geben Sie einen Clusternamen ein.Enter cluster name.
      Yarn-EndpunktYarn Endpoint Optional.Optional.
      AuthentifizierungstypAuthentication Type Lassen Sie die Standardauthentifizierung festgelegt.Leave as Basic Authentication
      BenutzernameUser Name Geben Sie den Clusterbenutzernamen ein. Der Standardwert lautet „admin“.Enter cluster user name, default is admin.
      KennwortPassword Geben Sie das Kennwort für den Benutzernamen ein.Enter password for user name.

      Dialogfeld zum Verknüpfen eines Livy-Custers

  4. Sie finden Ihren verknüpften Cluster im Knoten HDInsight.You can see your linked cluster from the HDInsight node.

    Verknüpfter Cluster

  5. Sie können die Verknüpfung eines Clusters im Azure-Explorer auch aufheben.You also can unlink a cluster from Azure Explorer.

    Cluster mit aufgehobener Verknüpfung

Ausführen einer Spark Scala-Anwendung in einem HDInsight Spark-ClusterRun a Spark Scala application on an HDInsight Spark cluster

Nachdem Sie eine Scala-Anwendung erstellt haben, können Sie diese an den Cluster übermitteln.After creating a Scala application, you can submit it to the cluster.

  1. Wechseln Sie in Project zu myApp > src > main > scala > myApp.From Project, navigate to myApp > src > main > scala > myApp. Klicken Sie mit der rechten Maustaste auf myApp, und wählen Sie Submit Spark Application (Spark-Anwendung übermitteln, wahrscheinlich am Listenende).Right-click myApp, and select Submit Spark Application (It will likely be located at the bottom of the list).

    Befehl „Submit Spark Application to HDInsight“

  2. Wählen Sie im Dialogfeld Submit Spark Application (Spark-Anwendung übermitteln) die Option 1. Spark für HDInsight aus.In the Submit Spark Application dialog window, select 1. Spark on HDInsight.

  3. Geben Sie im Fenster Edit configuration (Konfiguration bearbeiten) die folgenden Werte an, und klicken Sie dann auf OK:In the Edit configuration window, provide the following values and then select OK:

    EigenschaftProperty WertValue
    Spark-Cluster (nur Linux)Spark clusters (Linux only) Wählen Sie den HDInsight Spark-Cluster aus, auf dem Sie Ihre Anwendung ausführen möchten.Select the HDInsight Spark cluster on which you want to run your application.
    Select an Artifact to submit (Auswahl eines zu übermittelnden Artefakts)Select an Artifact to submit Behalten Sie die Standardeinstellung bei.Leave default setting.
    Main class name (Name der Hauptklasse)Main class name Der Standardwert ist die Hauptklasse aus der ausgewählten Datei.The default value is the main class from the selected file. Sie können die Klasse ändern, indem Sie auf die Auslassungspunkte ( ... ) klicken und eine andere Klasse auswählen.You can change the class by selecting the ellipsis(...) and choosing another class.
    Job configurations (Auftragskonfigurationen)Job configurations Sie können die Standardschlüssel und/oder Werte ändern.You can change the default keys and/or values. Weitere Informationen finden Sie unter Apache Livy-REST-API.For more information, see Apache Livy REST API.
    BefehlszeilenargumenteCommand line arguments Sie können bei Bedarf durch Leerzeichen getrennte Argumente für die Hauptklasse eingeben.You can enter arguments separated by space for the main class if needed.
    Referenced Jars and Referenced Files („Referenzierte JARs“ und „Referenzierte Dateien“)Referenced Jars and Referenced Files Sie können die Pfade für die referenzierten JARs und Dateien (sofern vorhanden) eingeben.You can enter the paths for the referenced Jars and files if any. Sie können auch Dateien im virtuellen Dateisystem von Azure durchsuchen, das derzeit nur ADLS Gen 2-Cluster unterstützt.You can also browse files in the Azure virtual file system, which currently only supports ADLS Gen 2 cluster. Weitere Informationen finden Sie unter: Apache Spark Configuration (Apache Spark-Konfiguration).For more information: Apache Spark Configuration. Lesen Sie auch die Informationen zum Hochladen von Ressourcen in einen Cluster.See also, How to upload resources to cluster.
    Job Upload Storage (Speicher für Auftragsupload)Job Upload Storage Erweitern Sie die Option, um zusätzliche Optionen anzuzeigen.Expand to reveal additional options.
    SpeichertypStorage Type Wählen Sie Use Azure Blob to upload (Azure-Blob für Upload verwenden) aus der Dropdownliste aus.Select Use Azure Blob to upload from the drop-down list.
    SpeicherkontoStorage Account Geben Sie Ihr Speicherkonto ein.Enter your storage account.
    Storage Key (Speicherschlüssel)Storage Key Geben Sie Ihren Speicherschlüssel ein.Enter your storage key.
    SpeichercontainerStorage Container Wählen Sie Ihren Speichercontainer aus der Dropdownliste aus, nachdem Sie Storage Account (Speicherkonto) und Storage Key (Speicherschlüssel) eingegeben haben.Select your storage container from the drop-down list once Storage Account and Storage Key has been entered.

    Dialogfeld für die Spark-Übermittlung

  4. Klicken Sie auf SparkJobRun, um das Projekt an den ausgewählten Cluster zu übermitteln.Select SparkJobRun to submit your project to the selected cluster. Auf der Registerkarte Remote Spark Job in Cluster (Spark-Remoteauftrag im Cluster) wird unten der Status der Auftragsausführung angezeigt.The Remote Spark Job in Cluster tab displays the job execution progress at the bottom. Sie können die Anwendung beenden, indem Sie auf die rote Schaltfläche klicken.You can stop the application by clicking the red button. Weiter unten in diesem Artikel im Abschnitt „Zugreifen auf und Verwalten von HDInsight Spark-Clustern mit dem Azure-Toolkit für IntelliJ“ wird beschrieben, wie Sie auf die Auftragsausgabe zugreifen.To learn how to access the job output, see the "Access and manage HDInsight Spark clusters by using Azure Toolkit for IntelliJ" section later in this article.

    Fenster für die Spark-Übermittlung

Lokales oder Remotedebuggen von Apache Spark-Anwendungen in einem HDInsight-ClusterDebug Apache Spark applications locally or remotely on an HDInsight cluster

Es wird noch eine andere Möglichkeit der Übermittlung von Spark Anwendungen an den Cluster empfohlen.We also recommend another way of submitting the Spark application to the cluster. Dazu werden die Parameter in der IDE Run/Debug Configurations (Ausführen/Debugkonfigurationen) festgelegt.You can do so by setting the parameters in the Run/Debug configurations IDE. Weitere Informationen finden Sie unter Lokales oder Remotedebuggen von Apache Spark-Anwendungen in einem HDInsight-Cluster mit dem Azure-Toolkit für IntelliJ über SSH.For more information, see Debug Apache Spark applications locally or remotely on an HDInsight cluster with Azure Toolkit for IntelliJ through SSH.

Zugreifen auf und Verwalten von HDInsight Spark-Clustern mit dem Azure-Toolkit für IntelliJAccess and manage HDInsight Spark clusters by using Azure Toolkit for IntelliJ

Sie können mit dem Azure-Toolkit für IntelliJ verschiedene Vorgänge durchführen.You can perform various operations by using Azure Toolkit for IntelliJ. Die meisten Vorgänge werden über den Azure Explorer gestartet.Most of the operations are initiated from Azure Explorer. Navigieren Sie in der Menüleiste zu Ansicht > Toolfenster > Azure Explorer.From the menu bar, navigate to View > Tool Windows > Azure Explorer.

Zugreifen auf die AuftragsansichtAccess the job view

  1. Navigieren Sie im Azure Explorer zu HDInsight > <Ihr Cluster > Aufträge.From Azure Explorer, navigate to HDInsight > <Your Cluster> > Jobs.

    Knoten „Auftragsansicht“

  2. Im rechten Bereich werden auf der Registerkarte Spark Job View (Spark-Auftragsansicht) alle Anwendungen angezeigt, die in dem Cluster ausgeführt wurden.In the right pane, the Spark Job View tab displays all the applications that were run on the cluster. Wählen Sie den Namen der Anwendung aus, zu der Sie weitere Details anzeigen möchten.Select the name of the application for which you want to see more details.

    Anwendungsdetails

  3. Wenn Sie grundlegende Informationen zum ausgeführten Auftrag anzeigen möchten, zeigen Sie auf das Auftragsdiagramm.To display basic running job information, hover over the job graph. Um das Phasendiagramm und von den einzelnen Aufträgen generierte Informationen anzuzeigen, wählen Sie einen Knoten im Auftragsdiagramm aus.To view the stages graph and information that every job generates, select a node on the job graph.

    Details zur Auftragsphase

  4. Um häufig verwendete Protokolle anzuzeigen, z.B. Driver Stderr, Driver Stdout oder Directory Info, wählen Sie die Registerkarte Log (Protokoll) aus.To view frequently used logs, such as Driver Stderr, Driver Stdout, and Directory Info, select the Log tab.

    Protokolldetails

  5. Sie können auch die Spark History UI (Spark-Verlaufsbenutzeroberfläche) und die YARN UI (YARN-Benutzeroberfläche) (auf Anwendungsebene) anzeigen, indem Sie im oberen Bereich des Fensters einen Link auswählen.You can also view the Spark history UI and the YARN UI (at the application level) by selecting a link at the top of the window.

Zugreifen auf den Spark-VerlaufsserverAccess the Spark history server

  1. Erweitern Sie im Azure Explorer die Option HDInsight, klicken Sie mit der rechten Maustaste auf den Namen Ihres Spark-Clusters, und wählen Sie dann Open Spark History UI (Spark-Verlaufsbenutzeroberfläche öffnen).From Azure Explorer, expand HDInsight, right-click your Spark cluster name, and then select Open Spark History UI.

  2. Wenn Sie dazu aufgefordert werden, geben Sie die Administratoranmeldeinformationen für den Cluster ein, die Sie beim Einrichten einer Verbindung mit dem Cluster angegeben haben.When you're prompted, enter the cluster's admin credentials, which you specified when you set up the cluster.

  3. Im Dashboard des Spark-Verlaufsservers können Sie anhand des Anwendungsnamens nach der Anwendung suchen, deren Ausführung Sie gerade beendet haben.On the Spark history server dashboard, you can use the application name to look for the application that you just finished running. Im obigen Code legen Sie den Namen der Anwendung mit val conf = new SparkConf().setAppName("myApp") fest.In the preceding code, you set the application name by using val conf = new SparkConf().setAppName("myApp"). Daher lautet der Name Ihrer Spark-Anwendung myApp.Therefore, your Spark application name is myApp.

Starten des Ambari-PortalsStart the Ambari portal

  1. Erweitern Sie im Azure Explorer die Option HDInsight, klicken Sie mit der rechten Maustaste auf den Namen Ihres Spark-Clusters, und wählen Sie dann Open Cluster Management Portal (Ambari) (Clusterverwaltungsportal (Ambari) öffnen).From Azure Explorer, expand HDInsight, right-click your Spark cluster name, and then select Open Cluster Management Portal(Ambari).

  2. Geben Sie die Anmeldeinformationen für den Cluster ein, wenn Sie dazu aufgefordert werden.When you're prompted, enter the admin credentials for the cluster. Sie haben diese Anmeldeinformationen während der Einrichtung des Clusters angegeben.You specified these credentials during the cluster setup process.

Verwalten von Azure-AbonnementsManage Azure subscriptions

Standardmäßig werden mit dem Azure-Toolkit für IntelliJ die Spark-Cluster Ihrer gesamten Azure-Abonnements aufgelistet.By default, Azure Toolkit for IntelliJ lists the Spark clusters from all your Azure subscriptions. Bei Bedarf können Sie die Abonnements angeben, auf die Sie zugreifen möchten.If necessary, you can specify the subscriptions that you want to access.

  1. Klicken Sie im Azure Explorer mit der rechten Maustaste auf den Hauptknoten Azure, und wählen Sie dann Abonnements auswählen aus.From Azure Explorer, right-click the Azure root node, and then select Select Subscriptions.

  2. Deaktivieren Sie im Fenster Abonnements auswählen die Kontrollkästchen neben den Abonnements, auf die Sie nicht zugreifen möchten, und wählen Sie dann Schließen aus.From the Select Subscriptions window, clear the check boxes next to the subscriptions that you don't want to access, and then select Close.

Spark-KonsoleSpark Console

Sie können eine lokale Spark-Konsole (Scala) oder eine Spark-Konsole mit interaktiver Livy-Sitzung (Scala) ausführen.You can run Spark Local Console(Scala) or run Spark Livy Interactive Session Console(Scala).

Lokale Spark-Konsole (Scala)Spark Local Console(Scala)

Stellen Sie sicher, dass die WINUTILS.EXE-Voraussetzung erfüllt ist.Ensure you have satisfied the WINUTILS.EXE prerequisite.

  1. Navigieren Sie in der Menüleiste zu Run > Edit Configurations (Ausführen > Konfigurationen bearbeiten).From the menu bar, navigate to Run > Edit Configurations....

  2. Navigieren Sie im Fenster Run/Debug Configurations (Konfigurationen ausführen/debuggen) im linken Bereich zu Apache Spark on HDInsight > [Spark on HDInsight] myApp.From the Run/Debug Configurations window, in the left pane, navigate to Apache Spark on HDInsight > [Spark on HDInsight] myApp.

  3. Wählen Sie im Hauptfenster die Registerkarte Locally Run (Lokale Ausführung) aus.From the main window, select the Locally Run tab.

  4. Geben Sie die folgenden Werte an, und wählen Sie anschließend OK aus:Provide the following values, and then select OK:

    EigenschaftProperty WertValue
    Job main class (Hauptklasse des Auftrags)Job main class Der Standardwert ist die Hauptklasse aus der ausgewählten Datei.The default value is the main class from the selected file. Sie können die Klasse ändern, indem Sie auf die Auslassungspunkte ( ... ) klicken und eine andere Klasse auswählen.You can change the class by selecting the ellipsis(...) and choosing another class.
    UmgebungsvariablenEnvironment variables Stellen Sie sicher, dass der Wert für HADOOP_HOME richtig ist.Ensure the value for HADOOP_HOME is correct.
    WINUTILS.exe location (Speicherort von „WINUTILS.exe“)WINUTILS.exe location Stellen Sie sicher, dass der Pfad richtig ist.Ensure the path is correct.

    Lokale Konsole – Festlegen der Konfiguration

  5. Wechseln Sie in Project zu myApp > src > main > scala > myApp.From Project, navigate to myApp > src > main > scala > myApp.

  6. Navigieren Sie in der Menüleiste zu Tools > Spark Console > Run Spark Local Console(Scala) (Extras > Spark-Konsole > Lokale Spark-Konsole ausführen (Scala)).From the menu bar, navigate to Tools > Spark Console > Run Spark Local Console(Scala).

  7. Möglicherweise werden zwei Dialogfelder angezeigt, in denen Sie gefragt werden, ob Sie die automatische Korrektur für die Abhängigkeiten durchführen möchten.Then two dialogs may be displayed to ask you if you want to auto fix dependencies. Wenn dies der Fall ist, wählen Sie Auto Fix (Automatisch korrigieren) aus.If so, select Auto Fix.

    Spark Auto Fix1

    Spark Auto Fix2

  8. Die Konsole sollte der folgenden Abbildung ähneln.The console should look similar to the picture below. Geben Sie im Konsolenfenster sc.appName ein, und drücken Sie STRG + EINGABETASTE.In the console window type sc.appName, and then press ctrl+Enter. Das Ergebnis wird angezeigt.The result will be shown. Sie können die lokale Konsole beenden, indem Sie auf die rote Schaltfläche klicken.You can terminate the local console by clicking red button.

    Ergebnis in der lokalen Konsole

Spark-Konsole mit interaktiver Livy-Sitzung (Scala)Spark Livy Interactive Session Console(Scala)

Dies wird nur für IntelliJ 2018.2 und 2018.3 unterstützt.It is only supported on IntelliJ 2018.2 and 2018.3.

  1. Navigieren Sie in der Menüleiste zu Run > Edit Configurations (Ausführen > Konfigurationen bearbeiten).From the menu bar, navigate to Run > Edit Configurations....

  2. Navigieren Sie im Fenster Run/Debug Configurations (Konfigurationen ausführen/debuggen) im linken Bereich zu Apache Spark on HDInsight > [Spark on HDInsight] myApp.From the Run/Debug Configurations window, in the left pane, navigate to Apache Spark on HDInsight > [Spark on HDInsight] myApp.

  3. Wählen Sie im Hauptfenster die Registerkarte Remotely Run in Cluster (Im Cluster remote ausführen) aus.From the main window, select the Remotely Run in Cluster tab.

  4. Geben Sie die folgenden Werte an, und wählen Sie anschließend OK aus:Provide the following values, and then select OK:

    EigenschaftProperty WertValue
    Spark-Cluster (nur Linux)Spark clusters (Linux only) Wählen Sie den HDInsight Spark-Cluster aus, auf dem Sie Ihre Anwendung ausführen möchten.Select the HDInsight Spark cluster on which you want to run your application.
    Main class name (Name der Hauptklasse)Main class name Der Standardwert ist die Hauptklasse aus der ausgewählten Datei.The default value is the main class from the selected file. Sie können die Klasse ändern, indem Sie auf die Auslassungspunkte ( ... ) klicken und eine andere Klasse auswählen.You can change the class by selecting the ellipsis(...) and choosing another class.

    Interaktive Konsole – Festlegen der Konfiguration

  5. Wechseln Sie in Project zu myApp > src > main > scala > myApp.From Project, navigate to myApp > src > main > scala > myApp.

  6. Navigieren Sie in der Menüleiste zu Tools > Spark Console > Run Spark Livy Interactive Session Console (Scala) (Extras > Spark-Konsole > Interaktive Spark Livy-Sitzungskonsole ausführen (Scala)) aus.From the menu bar, navigate to Tools > Spark Console > Run Spark Livy Interactive Session Console(Scala).

  7. Die Konsole sollte der folgenden Abbildung ähneln.The console should look similar to the picture below. Geben Sie im Konsolenfenster sc.appName ein, und drücken Sie STRG + EINGABETASTE.In the console window type sc.appName, and then press ctrl+Enter. Das Ergebnis wird angezeigt.The result will be shown. Sie können die lokale Konsole beenden, indem Sie auf die rote Schaltfläche klicken.You can terminate the local console by clicking red button.

    Ergebnis in der interaktiven Konsole

Senden einer Auswahl an die Spark-KonsoleSend Selection to Spark Console

Sie können das Skriptergebnis vorab erhalten, indem Sie einfach Code an die lokale Konsole oder die interaktive Livy-Sitzungskonsole (Scala) senden.It is convenient for you to foresee the script result by sending some code to the local console or Livy Interactive Session Console(Scala). Sie können Code in der Scala-Datei hervorheben und dann mit der rechten Maustaste auf Send Selection To Spark Console (Auswahl an Spark-Konsole senden) klicken.You can highlight some code in the Scala file, then right-click Send Selection To Spark Console. Der ausgewählte Code wird an die Konsole gesendet und ausgeführt.The selected code will be sent to the console and be performed. Das Ergebnis wird in der Konsole jeweils hinter dem Code angezeigt.The result will be displayed after the code in the console. Falls vorhanden, führt die Konsole eine Überprüfung der Fehler durch.The console will check the errors if existing.

Senden einer Auswahl an die Spark-Konsole

Rolle nur mit LeseberechtigungReader-only role

Wenn Benutzer, die über eine Rolle nur mit Leseberechtigung verfügen, einen Auftrag an einen Cluster übermitteln, sind Ambari-Anmeldeinformationen erforderlich.When users submit job to a cluster with reader-only role permission, Ambari credentials is required.

  1. Melden Sie sich mit einem Konto an, das über eine Rolle nur mit Leseberechtigung verfügt.Sign in with reader-only role account.

  2. Erweitern Sie im Azure Explorer die Option HDInsight, um die HDInsight-Cluster anzuzeigen, die sich in Ihrem Abonnement befinden.From Azure Explorer, expand HDInsight to view HDInsight clusters that are in your subscription. Cluster mit der Kennzeichnung "Role: Reader" verfügen über eine Rolle nur mit Leseberechtigung.The clusters marked "Role:Reader" only have reader-only role permission.

    HDInsight Spark-Cluster im Azure Explorer

  3. Klicken Sie mit der rechten Maustaste auf den Cluster, der über eine Rolle nur mit Leseberechtigung verfügt.Right-click the cluster with reader-only role permission. Wählen Sie aus dem Kontextmenü den Eintrag Link this cluster (Diesen Cluster verknüpfen) aus, um den Cluster zu verknüpfen.Select Link this cluster from context menu to link cluster. Geben Sie den Benutzernamen und das Kennwort für Ambari ein.Enter the Ambari username and Password.

    HDInsight Spark-Cluster im Azure Explorer

  4. Wenn der Cluster erfolgreich verknüpft wurde, wird HDInsight aktualisiert.If the cluster is linked successfully, HDInsight will be refreshed. Der Status des Clusters ändert sich zu „Linked“ (Verknüpft).The stage of the cluster will become linked.

    HDInsight Spark-Cluster im Azure Explorer

  1. Klicken Sie auf den Knoten Jobs (Aufträge). Das Fenster Cluster Job Access Denied (Zugriff auf Clusterauftrag verweigert) wird angezeigt.Click Jobs node, Cluster Job Access Denied window pops up.

  2. Klicken Sie auf Link this cluster (Diesen Cluster verknüpfen), um den Cluster zu verknüpfen.Click Link this cluster to link cluster.

    HDInsight Spark-Cluster im Azure Explorer

  1. Erstellen Sie eine HDInsight-Konfiguration.Create an HDInsight Configuration. Wählen Sie dann Remotely Run in Cluster (Im Cluster remote ausführen) aus.Then select Remotely Run in Cluster.

  2. Wählen Sie unter Spark clusters (Linux only) (Spark-Cluster (nur Linux)) einen Cluster aus, der über eine Rolle nur mit Leseberechtigung verfügt.Select a cluster, which has reader-only role permission for Spark clusters(Linux only). Es wird eine Warnmeldung angezeigt. Sie können auf Link this cluster (Diesen Cluster verknüpfen) klicken, um den Cluster zu verknüpfen.Warning message shows out. You can Click Link this cluster to link cluster.

    HDInsight Spark-Cluster im Azure Explorer

Anzeigen von SpeicherkontenView Storage Accounts

  • Klicken Sie in einem Cluster, der über eine Rolle nur mit Leseberechtigung verfügt, auf den Knoten Storage Accounts (Speicherkonten). Das Fenster Storage Access Denied (Zugriff auf Speicher verweigert) wird angezeigt.For clusters with reader-only role permission, click Storage Accounts node, Storage Access Denied window pops up. Sie können auf Open Azure Storage Explorer (Azure Storage-Explorer öffnen) klicken, um den Storage-Explorer zu öffnen.You can click Open Azure Storage Explorer to open Storage Explorer.

    HDInsight Spark-Cluster im Azure Explorer

    HDInsight Spark-Cluster im Azure Explorer

  • Klicken Sie in einem verknüpften Cluster auf den Knoten Storage Accounts (Speicherkonten). Das Fenster Storage Access Denied (Zugriff auf Speicher verweigert) wird angezeigt.For linked clusters, click Storage Accounts node, Storage Access Denied window pops up. Sie können auf Open Azure Storage (Azure Storage öffnen) klicken, um den Storage-Explorer zu öffnen.You can click Open Azure Storage to open Storage Explorer.

    HDInsight Spark-Cluster im Azure Explorer

    HDInsight Spark-Cluster im Azure Explorer

Konvertieren vorhandener IntelliJ IDEA-Anwendungen für die Verwendung des Azure-Toolkits für IntelliJConvert existing IntelliJ IDEA applications to use Azure Toolkit for IntelliJ

Sie können die vorhandenen Spark Scala-Anwendungen, die Sie in IntelliJ IDEA erstellt haben, so umwandeln, dass sie mit dem Azure-Toolkit für IntelliJ kompatibel sind.You can convert the existing Spark Scala applications that you created in IntelliJ IDEA to be compatible with Azure Toolkit for IntelliJ. Anschließend können Sie das Plug-In verwenden, um die Anwendungen an einen HDInsight Spark-Cluster zu übermitteln.You can then use the plug-in to submit the applications to an HDInsight Spark cluster.

  1. Öffnen Sie die zugehörige IML-Datei einer vorhandenen Spark Scala-Anwendung, die mit IntelliJ IDEA erstellt wurde.For an existing Spark Scala application that was created through IntelliJ IDEA, open the associated .iml file.

  2. Auf der Stammebene befindet sich ein module-Element wie das folgende:At the root level is a module element like the following:

     <module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
    

    Fügen Sie dem Element UniqueKey="HDInsightTool" hinzu, damit das module -Element wie folgt aussieht:Edit the element to add UniqueKey="HDInsightTool" so that the module element looks like the following:

     <module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4" UniqueKey="HDInsightTool">
    
  3. Speichern Sie die Änderungen.Save the changes. Ihre Anwendung sollte jetzt mit dem Azure-Toolkit für IntelliJ kompatibel sein.Your application should now be compatible with Azure Toolkit for IntelliJ. Sie können dies testen, indem Sie in Project mit der rechten Maustaste auf den Projektnamen klicken.You can test it by right-clicking the project name in Project. Im Popupmenü ist jetzt die Option Submit Spark Application to HDInsight (Spark-Anwendung an HDInsight übermitteln) verfügbar.The pop-up menu now has the option Submit Spark Application to HDInsight.

Bereinigen von RessourcenClean up resources

Wenn Sie diese Anwendung nicht mehr benötigen, gehen Sie wie folgt vor, um den erstellten Cluster zu löschen:If you're not going to continue to use this application, delete the cluster that you created with the following steps:

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.

  2. Geben Sie oben im Suchfeld den Suchbegriff HDInsight ein.In the Search box at the top, type HDInsight.

  3. Wählen Sie unter Dienste die Option HDInsight-Cluster aus.Select HDInsight clusters under Services.

  4. Klicken Sie in der daraufhin angezeigten Liste mit den HDInsight-Clustern neben dem Cluster, den Sie für dieses Tutorial erstellt haben, auf die Auslassungspunkte ( ... ).In the list of HDInsight clusters that appears, select the ... next to the cluster that you created for this tutorial.

  5. Klicken Sie auf Löschen.Select Delete. Wählen Sie Ja aus.Select Yes.

Löschen eines HDInsight-ClustersDelete an HDInsight cluster

Nächste SchritteNext steps

In diesem Tutorial haben Sie gelernt, wie Sie mit dem Plug-In „Azure-Toolkit für IntelliJ“ in Scala geschriebene Apache Spark-Anwendungen entwickeln und dann direkt aus der IntelliJ-IDE (Integrated Development Environment, integrierte Entwicklungsumgebung) an einen HDInsight Spark-Cluster senden.In this tutorial, you learned how to use the Azure Toolkit for IntelliJ plug-in to develop Apache Spark applications written in Scala, and then submitted them to an HDInsight Spark cluster directly from the IntelliJ integrated development environment (IDE). Fahren Sie mit dem nächsten Artikel fort, um zu erfahren, wie die in Apache Spark registrierten Daten in ein BI-Analyse-Tool wie Power BI gezogen werden können.Advance to the next article to see how the data you registered in Apache Spark can be pulled into a BI analytics tool such as Power BI.