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

Verwenden Sie das Plug-In „Azure-Toolkit für IntelliJ“, um in Scala geschriebene Apache Spark-Anwendungen zu entwickeln und diese dann direkt aus der IntelliJ-IDE (integrierte Entwicklungsumgebung) an einen HDInsight Spark-Cluster zu senden.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.

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.

  3. Wählen Sie im Dialogfeld Azure-Anmeldung die Option Anmelden aus, und geben Sie Ihre Azure-Anmeldeinformationen ein.In the Azure Sign In dialog box, select Sign in, and then enter your Azure credentials.

    Dialogfeld „Azure-Anmeldung“

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

  5. Erweitern Sie im Azure Explorer die Option HDInsight, um die HDInsight Spark-Cluster in Ihrem Abonnement anzuzeigen.From Azure Explorer, expand HDInsight to view the HDInsight Spark clusters that are in your subscription.

    HDInsight Spark-Cluster im Azure Explorer

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

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

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.

ProblembehandlungTroubleshooting

Fehler bei lokaler Ausführung: Verwenden größerer HeapsError in local run: Use a larger heap size

Sie erhalten unter Umständen die folgenden Fehlermeldungen, wenn Sie bei der lokalen Ausführung in Spark 1.6 ein 32-Bit-Java SDK verwenden:In Spark 1.6, if you're using a 32-bit Java SDK during local run, you might encounter the following errors:

Exception in thread "main" java.lang.IllegalArgumentException: System memory 259522560 must be at least 4.718592E8. Please use a larger heap size.
    at org.apache.spark.memory.UnifiedMemoryManager$.getMaxMemory(UnifiedMemoryManager.scala:193)
    at org.apache.spark.memory.UnifiedMemoryManager$.apply(UnifiedMemoryManager.scala:175)
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:354)
    at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:193)
    at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:288)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:457)
    at LogQuery$.main(LogQuery.scala:53)
    at LogQuery.main(LogQuery.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

Diese Fehler treten auf, weil die Heapgröße für die Ausführung von Spark nicht groß genug ist.These errors happen because the heap size is not large enough for Spark to run. Für Spark sind mindestens 471 MB erforderlich.Spark requires at least 471 MB. (Weitere Informationen finden Sie unter SPARK-12081.) Eine einfache Lösung ist die Verwendung eines 64-Bit-Java SDK.(For more information, see SPARK-12081.) One simple solution is to use a 64-bit Java SDK. Sie können auch die JVM-Einstellungen in IntelliJ ändern, indem Sie die folgenden Optionen hinzufügen:You can also change the JVM settings in IntelliJ by adding the following options:

-Xms128m -Xmx512m -XX:MaxPermSize=300m -ea

Hinzufügen von Optionen zum Feld „VM options“ (VM-Optionen) in IntelliJ

Häufig gestellte FragenFAQ

Wenn der Cluster ausgelastet ist, erhalten Sie möglicherweise die folgende Fehlermeldung.If the cluster is busy, you might get the error below.

IntelliJ-Fehler beim Abrufen bei ausgelastetem Cluster

IntelliJ-Fehler beim Abrufen bei ausgelastetem Cluster

Feedback und bekannte ProblemeFeedback and known issues

Derzeit wird die direkte Anzeige von Spark-Ausgaben nicht unterstützt.Currently, viewing Spark outputs directly is not supported.

Falls Sie Vorschläge oder Feedback haben oder bei Verwendung dieses Plug-Ins Probleme auftreten, senden Sie eine E-Mail an hdivstool@microsoft.com.If you have any suggestions or feedback, or if you encounter any problems when you use this plug-in, email us at hdivstool@microsoft.com.

Nächste SchritteNext steps

DemoDemo

SzenarienScenarios

Erstellen und Ausführen von AnwendungenCreating and running applications

Tools und ErweiterungenTools and extensions

Verwalten von RessourcenManaging resources