Verwenden des Azure-Toolkits für IntelliJ zum Remotedebuggen von Apache Spark-Anwendungen über VPNUse Azure Toolkit for IntelliJ to debug Apache Spark applications remotely in HDInsight through VPN

Es wird empfohlen, für das Remotedebuggen von Apache Spark-Anwendungen SSH zu verwenden.We recommend debugging Apache Spark applications remotely through SSH. Anweisungen finden Sie unter Remotedebuggen von Apache Spark-Anwendungen in einem HDInsight-Cluster mit dem Azure-Toolkit für IntelliJ über SSH.For instructions, see Remotely debug Apache Spark applications on an HDInsight cluster with Azure Toolkit for IntelliJ through SSH.

Dieser Artikel enthält eine schrittweise Anleitung, in der erläutert wird, wie Sie mithilfe der HDInsight Tools im Azure-Toolkit für IntelliJ einen Spark-Auftrag in einem HDInsight Spark-Cluster senden und anschließend über den Desktopcomputer per Remotezugriff debuggen.This article provides step-by-step guidance on how to use the HDInsight Tools in Azure Toolkit for IntelliJ to submit a Spark job on an HDInsight Spark cluster, and then debug it remotely from your desktop computer. Zum Durchführen dieser Aufgaben müssen Sie die folgenden allgemeinen Schritte ausführen:To complete these tasks, you must perform the following high-level steps:

  1. Erstellen Sie ein virtuelles Azure-Netzwerk vom Typ „Site-to-Site“ oder „Point-to-Site“.Create a site-to-site or point-to-site Azure virtual network. Für die Schritte in diesem Dokument wird vorausgesetzt, dass Sie ein Standort-zu-Standort-Netzwerk verwenden.The steps in this document assume that you use a site-to-site network.
  2. Erstellen Sie einen Spark-Cluster in HDInsight, der Teil des virtuellen Site-to-Site-Netzwerks ist.Create a Spark cluster in HDInsight that is part of the site-to-site virtual network.
  3. Überprüfen Sie die Konnektivität zwischen dem Clusterhauptknoten und Ihrem Desktopcomputer.Verify the connectivity between the cluster head node and your desktop.
  4. Erstellen Sie eine Scala-Anwendung in IntelliJ IDEA, und konfigurieren Sie sie anschließend für das Remotedebuggen.Create a Scala application in IntelliJ IDEA, and then configure it for remote debugging.
  5. Stellen Sie die Anwendung bereit, und führen Sie das Debuggen durch.Run and debug the application.

VoraussetzungenPrerequisites

Schritt 1: Erstellen eines virtuellen Azure-NetzwerksStep 1: Create an Azure virtual network

Führen Sie die Anweisungen unter den folgenden Links aus, um ein virtuelles Azure-Netzwerk zu erstellen, und überprüfen Sie anschließend die Konnektivität zwischen dem Desktopcomputer und dem virtuellen Netzwerk:Follow the instructions from the following links to create an Azure virtual network, and then verify the connectivity between your desktop computer and the virtual network:

Schritt 2: Erstellen eines HDInsight Spark-ClustersStep 2: Create an HDInsight Spark cluster

Wir empfehlen, auch einen Apache Spark-Cluster in Azure HDInsight zu erstellen, der Teil des von Ihnen erstellten virtuellen Azure-Netzwerks ist.We recommend that you also create an Apache Spark cluster in Azure HDInsight that is part of the Azure virtual network that you created. Verwenden Sie die im Artikel zum Erstellen von Linux-basierten Clustern in HDInsight verfügbaren Informationen.Use the information available in Create Linux-based clusters in HDInsight. Wählen Sie als Teil der optionalen Konfiguration das virtuelle Azure-Netzwerk aus, das Sie im vorherigen Schritt erstellt haben.As part of optional configuration, select the Azure virtual network that you created in the previous step.

Schritt 3: Überprüfen der Konnektivität zwischen dem Clusterhauptknoten und dem DesktopcomputerStep 3: Verify the connectivity between the cluster head node and your desktop

  1. Rufen Sie die IP-Adresse des Hauptknotens ab.Get the IP address of the head node. Öffnen Sie die Ambari-Benutzeroberfläche für den Cluster.Open Ambari UI for the cluster. Klicken Sie auf dem Clusterblatt auf Dashboard.From the cluster blade, select Dashboard.

    Auswählen von „Dashboard“ in Ambari

  2. Wählen Sie in der Ambari-Benutzeroberfläche die Option Hosts aus.From the Ambari UI, select Hosts.

    Auswählen von „Hosts“ in Ambari

  3. Eine Liste mit Hauptknoten, Workerknoten und Zookeeper-Knoten wird angezeigt.You see a list of head nodes, worker nodes, and zookeeper nodes. Die Hauptknoten haben das Präfix hn*.The head nodes have an hn* prefix. Wählen Sie den ersten Hauptknoten aus.Select the first head node.

    Suchen nach dem Hauptknoten in Ambari

  4. Kopieren Sie unten auf der angezeigten Seite im Bereich Summary (Zusammenfassung) die IP-Adresse des Hauptknotens und den Hostnamen.From the Summary pane at the bottom of the page that opens, copy the IP Address of the head node and the Hostname.

    Suchen nach der IP-Adresse in Ambari

  5. Fügen Sie die IP-Adresse und den Hostnamen des Hauptknotens der Datei hosts auf dem Computer hinzu, auf dem Sie den Spark-Auftrag ausführen und per Remotezugriff debuggen möchten.Add the IP address and the hostname of the head node to the hosts file on the computer where you want to run and remotely debug the Spark job. Auf diese Weise können Sie sowohl anhand der IP-Adresse als auch des Hostnamens mit dem Hauptknoten kommunizieren.This enables you to communicate with the head node by using the IP address, as well as the hostname.

    a.a. Öffnen Sie eine Editor-Datei mit erhöhten Rechten.Open a Notepad file with elevated permissions. Klicken Sie im Menü File (Datei) auf Open (Öffnen), und navigieren Sie zum Speicherort der Datei „hosts“.From the File menu, select Open, and then find the location of the hosts file. Auf einem Windows-Computer ist der Speicherort C:\Windows\System32\Drivers\etc\hosts.On a Windows computer, the location is C:\Windows\System32\Drivers\etc\hosts.

    b.b. Fügen Sie der Datei hosts die folgenden Informationen hinzu:Add the following information to the hosts file:

        # For headnode0
        192.xxx.xx.xx hn0-nitinp
        192.xxx.xx.xx hn0-nitinp.lhwwghjkpqejawpqbwcdyp3.gx.internal.cloudapp.net
    
        # For headnode1
        192.xxx.xx.xx hn1-nitinp
        192.xxx.xx.xx hn1-nitinp.lhwwghjkpqejawpqbwcdyp3.gx.internal.cloudapp.net
    
  6. Überprüfen Sie auf dem Computer, den Sie mit dem vom HDInsight-Cluster verwendeten virtuellen Azure-Netzwerk verbunden haben, ob Sie die Hauptknoten sowohl mit der IP-Adresse als auch dem Hostnamen pingen können.From the computer that you connected to the Azure virtual network that is used by the HDInsight cluster, verify that you can ping the head nodes by using the IP address, as well as the hostname.

  7. Verwenden Sie SSH, um eine Verbindung mit dem Clusterhauptknoten herzustellen, indem Sie den Anweisungen unter Herstellen einer Verbindung mit HDInsight (Hadoop) per SSH folgen.Use SSH to connect to the cluster head node by following the instructions in Connect to an HDInsight cluster using SSH. Pingen Sie vom Clusterhauptknoten aus die IP-Adresse des Desktopcomputers.From the cluster head node, ping the IP address of the desktop computer. Testen Sie die Konnektivität mit beiden IP-Adressen, die dem Computer zugewiesen sind:Test the connectivity to both IP addresses assigned to the computer:

    • Eine für die NetzwerkverbindungOne for the network connection
    • Eine für das virtuelle Azure-NetzwerkOne for the Azure virtual network
  8. Wiederholen Sie die Schritte für den anderen Hauptknoten.Repeat the steps for the other head node.

Schritt 4: Erstellen einer Apache Spark Scala-Anwendung mit den HDInsight-Tools im Azure-Toolkit für IntelliJ und Konfigurieren der Anwendung für das RemotedebuggenStep 4: Create an Apache Spark Scala application by using HDInsight Tools in Azure Toolkit for IntelliJ and configure it for remote debugging

  1. Öffnen Sie IntelliJ IDEA, und erstellen Sie ein neues Projekt.Open IntelliJ IDEA and create a new project. Führen Sie im Dialogfeld Neues Projekt folgende Schritte aus:In the New Project dialog box, do the following:

    Auswählen der neuen Projektvorlage in IntelliJ IDEA

    a.a. Wählen Sie HDInsight > Spark auf HDInsight (Scala) aus.Select HDInsight > Spark on HDInsight (Scala).

    b.b. Klicken Sie auf Weiter.Select Next.

  2. Führen Sie im Dialogfeld New Project (Neues Projekt) die folgenden Schritte aus, und klicken Sie anschließend auf Finish (Fertig stellen):In the next New Project dialog box, do the following, and then select Finish:

    • Geben Sie einen Projektnamen und einen Speicherort ein.Enter a project name and location.

    • Wählen Sie in der Dropdownliste Projekt-SDK eine Java 1.8 für Spark 2.x-Cluster bzw. Java 1.7 für Spark 1.x-Cluster aus.In the Project SDK drop-down list, select Java 1.8 for the Spark 2.x cluster, or select Java 1.7 for the Spark 1.x cluster.

    • In der Dropdownliste Spark version (Spark-Version) fügt der Scala-Projekterstellungs-Assistent die entsprechende Version für das Spark-SDK und das Scala-SDK ein.In the Spark version drop-down list, the Scala project creation wizard integrates the proper version for the Spark SDK and the 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.0.2 (Scala 2.11.8) verwendet.This example uses Spark 2.0.2 (Scala 2.11.8).

    Auswählen des Projekt-SDK und der Spark-Version

  3. 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. Wählen Sie im Menü File (Datei) die Option Project Structure (Projektstruktur) aus.From the File menu, select Project Structure.

    b.b. Wählen Sie im Dialogfeld Project Structure (Projektstruktur) die Option Artifacts (Artefakte) aus, um das Standardartefakt anzuzeigen, das erstellt wird.In the Project Structure dialog box, select Artifacts to view the default artifact that is created. Sie können auch ein eigenes Artefakt erstellen, indem Sie das Plus-Symbol ( + ) auswählen.You can also create your own artifact by selecting the plus sign (+).

    Erstellen einer JAR-Datei

  4. Fügen Sie dem Projekt Bibliotheken hinzu.Add libraries to your project. Gehen Sie zum Hinzufügen einer Bibliothek wie folgt vor:To add a library, do the following:

    a.a. Klicken Sie in der Projektstruktur mit der rechten Maustaste auf den Projektnamen, und wählen Sie dann Open Module Settings (Moduleinstellungen öffnen) aus.Right-click the project name in the project tree, and then select Open Module Settings.

    b.b. Wählen Sie im Dialogfeld Project Structure (Projektstruktur) die Option Libraries (Bibliotheken) aus, klicken Sie auf das Plussymbol ( + ), und wählen Sie dann From Maven (Aus Maven) aus.In the Project Structure dialog box, select Libraries, select the (+) symbol, and then select From Maven.

    Hinzufügen einer Bibliothek

    c.c. Suchen Sie im Dialogfeld Download Library from Maven Repository (Bibliothek aus Maven-Repository herunterladen) nach den folgenden Bibliotheken, und fügen Sie sie hinzu:In the Download Library from Maven Repository dialog box, search for and add the following libraries:

    • org.scalatest:scalatest_2.10:2.2.1
    • org.apache.hadoop:hadoop-azure:2.7.1
  5. Kopieren Sie yarn-site.xml und core-site.xml vom Clusterhauptknoten, und fügen Sie die Dateien dem Projekt hinzu.Copy yarn-site.xml and core-site.xml from the cluster head node and add them to the project. Führen Sie die folgenden Befehle aus, um die Dateien zu kopieren:Use the following commands to copy the files. Sie können Cygwin verwenden, um die folgenden scp-Befehle zum Kopieren der Dateien vom Clusterhauptknoten auszuführen:You can use Cygwin to run the following scp commands to copy the files from the cluster head nodes:

     scp <ssh user name>@<headnode IP address or host name>://etc/hadoop/conf/core-site.xml .
    

    Da wir die IP-Adresse und den Hostnamen des Clusterhauptknotens für die Datei „hosts“ auf dem Desktopcomputer bereits hinzugefügt haben, können wir die scp-Befehle wie folgt verwenden:Because we already added the cluster head node IP address and hostnames for the hosts file on the desktop, we can use the scp commands in the following manner:

     scp sshuser@hn0-nitinp:/etc/hadoop/conf/core-site.xml .
     scp sshuser@hn0-nitinp:/etc/hadoop/conf/yarn-site.xml .
    

    Kopieren Sie diese Dateien in den Ordner /src der Projektstruktur (z. B. <your project directory>\src), um sie dem Projekt hinzuzufügen.To add these files to your project, copy them under the /src folder in your project tree, for example <your project directory>\src.

  6. Aktualisieren Sie die Datei core-site.xml, um die folgenden Änderungen vorzunehmen:Update the core-site.xml file to make the following changes:

    a.a. Ersetzen Sie den verschlüsselten Schlüssel.Replace the encrypted key. Die Datei core-site.xml enthält den verschlüsselten Schlüssel für das Speicherkonto, das dem Cluster zugeordnet ist.The core-site.xml file includes the encrypted key to the storage account associated with the cluster. Ersetzen Sie in der Datei core-site.xml, die Sie dem Projekt hinzugefügt haben, den verschlüsselten Schlüssel durch den tatsächlichen Speicherschlüssel, der dem Standardspeicherkonto zugeordnet ist.In the core-site.xml file that you added to the project, replace the encrypted key with the actual storage key associated with the default storage account. Weitere Informationen finden Sie unter Verwalten von Speicherkonten.For more information, see Manage your storage access keys.

        <property>
              <name>fs.azure.account.key.hdistoragecentral.blob.core.windows.net</name>
              <value>access-key-associated-with-the-account</value>
        </property>
    

    b.b. Entfernen Sie die folgenden Einträge aus der Datei core-site.xml:Remove the following entries from core-site.xml:

        <property>
              <name>fs.azure.account.keyprovider.hdistoragecentral.blob.core.windows.net</name>
              <value>org.apache.hadoop.fs.azure.ShellDecryptionKeyProvider</value>
        </property>
    
        <property>
              <name>fs.azure.shellkeyprovider.script</name>
              <value>/usr/lib/python2.7/dist-packages/hdinsight_common/decrypt.sh</value>
        </property>
    
        <property>
              <name>net.topology.script.file.name</name>
              <value>/etc/hadoop/conf/topology_script.py</value>
        </property>
    

    c.c. Speichern Sie die Datei .Save the file.

  7. Fügen Sie die Hauptklasse für Ihre Anwendung hinzu.Add the main class for your application. Klicken Sie im Projekt-Explorer (Projekt-Explorer) mit der rechten Maustaste auf src, zeigen Sie auf New (Neu), und wählen Sie dann Scala Class (Scala-Klasse) aus.From the Project Explorer, right-click src, point to New, and then select Scala class.

    Auswählen der Hauptklasse

  8. Geben Sie im Dialogfeld Create New Scala Class (Neue Scala-Klasse erstellen) einen Namen ein. Wählen Sie unter 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 box, and then select OK.

    Erstellen einer neuen Scala-Klasse

  9. Fügen Sie den folgenden Code in die Datei MyClusterAppMain.scala ein.In the MyClusterAppMain.scala file, paste the following code. Dieser Code erstellt den Spark-Kontext und öffnet über das SparkSample-Objekt eine executeJob-Methode.This code creates the Spark context and opens an executeJob method from the SparkSample object.

     import org.apache.spark.{SparkConf, SparkContext}
    
     object SparkSampleMain {
       def main (arg: Array[String]): Unit = {
         val conf = new SparkConf().setAppName("SparkSample")
                                   .set("spark.hadoop.validateOutputSpecs", "false")
         val sc = new SparkContext(conf)
    
         SparkSample.executeJob(sc,
                                "wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv",
                                "wasb:///HVACOut")
       }
     }
    
  10. Wiederholen Sie die Schritte 8 und 9, um ein neues Scala-Objekt mit dem Namen *SparkSample hinzuzufügen.Repeat steps 8 and 9 to add a new Scala object called *SparkSample. Fügen Sie dieser Klasse den folgenden Code hinzu.Add the following code to this class. Dieser Code liest die Daten aus der Datei „HVAC.csv“ (verfügbar in allen HDInsight Spark-Clustern).This code reads the data from the HVAC.csv (available in all HDInsight Spark clusters). Er ruft die Zeilen ab, die nur eine Ziffer in der siebten Spalte der CSV-Datei enthalten, und schreibt die Ausgabe dann in /HVACOut unter dem Standardspeichercontainer für den Cluster.It retrieves the rows that only have one digit in the seventh column in the CSV file, and then writes the output to /HVACOut under the default storage container for the cluster.

     import org.apache.spark.SparkContext
    
     object SparkSample {
      def executeJob (sc: SparkContext, input: String, output: String): Unit = {
        val rdd = sc.textFile(input)
    
        //find the rows which have only one digit in the 7th column in the CSV
        val rdd1 =  rdd.filter(s => s.split(",")(6).length() == 1)
    
        val s = sc.parallelize(rdd.take(5)).cartesian(rdd).count()
        println(s)
    
        rdd1.saveAsTextFile(output)
        //rdd1.collect().foreach(println)
      }
     }
    
  11. Wiederholen Sie die Schritte 8 und 9, um eine neue Klasse mit dem Namen RemoteClusterDebugging hinzuzufügen.Repeat steps 8 and 9 to add a new class called RemoteClusterDebugging. Diese Klasse implementiert das Spark-Testframework, das zum Debuggen der Anwendungen verwendet wird.This class implements the Spark test framework that is used to debug the applications. Fügen Sie der RemoteClusterDebugging-Klasse den folgenden Code hinzu:Add the following code to the RemoteClusterDebugging class:

     import org.apache.spark.{SparkConf, SparkContext}
     import org.scalatest.FunSuite
    
     class RemoteClusterDebugging extends FunSuite {
    
      test("Remote run") {
        val conf = new SparkConf().setAppName("SparkSample")
                                  .setMaster("yarn-client")
                                  .set("spark.yarn.am.extraJavaOptions", "-Dhdp.version=2.4")
                                  .set("spark.yarn.jar", "wasb:///hdp/apps/2.4.2.0-258/spark-assembly-1.6.1.2.4.2.0-258-hadoop2.7.1.2.4.2.0-258.jar")
                                  .setJars(Seq("""C:\workspace\IdeaProjects\MyClusterApp\out\artifacts\MyClusterApp_DefaultArtifact\default_artifact.jar"""))
                                  .set("spark.hadoop.validateOutputSpecs", "false")
        val sc = new SparkContext(conf)
    
        SparkSample.executeJob(sc,
          "wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv",
          "wasb:///HVACOut")
      }
     }
    

    Hierbei sind einige wichtige Punkte zu beachten:There are a couple of important things to note:

    • Stellen Sie für .set("spark.yarn.jar", "wasb:///hdp/apps/2.4.2.0-258/spark-assembly-1.6.1.2.4.2.0-258-hadoop2.7.1.2.4.2.0-258.jar")sicher, dass die Spark-Assembly-JAR-Datei im Clusterspeicher unter dem angegebenen Pfad verfügbar ist.For .set("spark.yarn.jar", "wasb:///hdp/apps/2.4.2.0-258/spark-assembly-1.6.1.2.4.2.0-258-hadoop2.7.1.2.4.2.0-258.jar"), make sure the Spark assembly JAR is available on the cluster storage at the specified path.
    • Geben Sie für setJars den Speicherort an, an dem die Artefakt-JAR-Datei erstellt wird.For setJars, specify the location where the artifact JAR is created. Normalerweise ist dies <Your IntelliJ project directory>\out\<project name>_DefaultArtifact\default_artifact.jar.Typically, it is <Your IntelliJ project directory>\out\<project name>_DefaultArtifact\default_artifact.jar.
  12. Klicken Sie in der *RemoteClusterDebugging-Klasse mit der rechten Maustaste auf das Schlüsselwort test, und wählen Sie anschließend Create RemoteClusterDebugging Configuration (RemoteClusterDebugging-Konfiguration erstellen) aus.In the*RemoteClusterDebugging class, right-click the test keyword, and then select Create RemoteClusterDebugging Configuration.

    Erstellen einer Remotekonfiguration

  13. Geben Sie im Dialogfeld Create RemoteClusterDebugging Configuration (RemoteClusterDebugging-Konfiguration erstellen) einen Namen für die Konfiguration an, und wählen Sie dann Test kind (Testvariante) als Test name (Testname) aus.In the Create RemoteClusterDebugging Configuration dialog box, provide a name for the configuration, and then select Test kind as the Test name. Übernehmen Sie für alle anderen Werte die Standardeinstellungen.Leave all the other values as the default settings. Klicken Sie auf Apply (Anwenden) und dann auf OK.Select Apply, and then select OK.

    Hinzufügen der Konfigurationsdetails

  14. In der Menüleiste sollte nun eine Dropdownliste Remote run (Remotetestlauf) für die Konfiguration angezeigt werden.You should now see a Remote run configuration drop-down list in the menu bar.

    Dropdownliste „Remote run“ (Remotetestlauf)

Schritt 5: Ausführen der Anwendung im DebugmodusStep 5: Run the application in debug mode

  1. Öffnen Sie im IntelliJ IDEA-Projekt die Datei SparkSample.scala, und erstellen Sie neben val rdd1 einen Breakpoint.In your IntelliJ IDEA project, open SparkSample.scala and create a breakpoint next to val rdd1. Wählen Sie im Popupmenü Create Breakpoint for (Breakpoint erstellen für) die Option line in function executeJob (Zeile in executeJob-Funktion) aus.In the Create Breakpoint for pop-up menu, select line in function executeJob.

    Haltepunkt hinzufügen

  2. Klicken Sie zum Ausführen der Anwendung neben der Dropdownliste Remote Run (Remotetestlauf) für die Konfiguration auf die Schaltfläche Debug Run (Debugausführung).To run the application, select the Debug Run button next to the Remote Run configuration drop-down list.

    Schaltfläche „Debug Run“ (Debugausführung)

  3. Wenn die Programmausführung den Breakpoint erreicht, wird im unteren Bereich die Registerkarte Debugger angezeigt.When the program execution reaches the breakpoint, you see a Debugger tab in the bottom pane.

    Anzeigen der Registerkarte „Debugger“

  4. Klicken Sie zum Hinzufügen eines Überwachungselements auf das Plussymbol ( + ).To add a watch, select the (+) icon.

    Klicken auf das Plussymbol (+)

    In diesem Beispiel wurde die Anwendung unterbrochen, bevor die rdd1-Variable erstellt wurde.In this example, the application broke before the variable rdd1 was created. Mithilfe dieses Überwachungselements können wir die ersten fünf Zeilen in der rdd-Variablen anzeigen.By using this watch, we can see the first five rows in the variable rdd. Drücken Sie die EINGABETASTE.Select Enter.

    Programm im Debugmodus ausführen

    Wie Sie in der obigen Abbildung sehen, können Sie zur Laufzeit Terabytes von Daten abfragen und den Ablauf der Anwendung debuggen.What you see in the previous image is that at runtime, you might query terabytes of data and debug how your application progresses. In der Ausgabe in der vorherigen Abbildung können Sie beispielsweise sehen, dass die erste Zeile der Ausgabe ein Header ist.For example, in the output shown in the previous image, you can see that the first row of the output is a header. Basierend auf dieser Ausgabe können Sie bei Bedarf den Anwendungscode ändern, um die Headerzeile zu überspringen.Based on this output, you can modify your application code to skip the header row, if necessary.

  5. Nun können Sie auf das Symbol Resume Program (Programm fortsetzen) klicken, um die Ausführung der Anwendung fortzusetzen.You can now select the Resume Program icon to proceed with your application run.

    Klicken auf das Symbol „Resume Program“ (Programm fortsetzen)

  6. Wenn die Ausführung der Anwendung erfolgreich abgeschlossen wird, sollte eine Ausgabe der folgenden Art angezeigt werden:If the application finishes successfully, you should see output like the following:

    Konsolenausgabe

Nächste SchritteNext steps

DemoDemo

SzenarienScenarios

Erstellen und Ausführen von AnwendungenCreate and run applications

Tools und ErweiterungenTools and extensions

Verwalten von RessourcenManage resources