Ausführen eines Jobs in Spark

In diesem Tutorial erfahren Sie, wie Sie mittels Spark-Framework einen Big-Data-Batch-Job erstellen und Daten aus HDFS lesen, sortieren und in der Konsole anzeigen.

Dieses Tutorial basiert auf Talend Data Fabric Studio Version 6 und einem Hadoop-Cluster: Cloudera CDH Version 5.4. Dabei werden die im Tutorial „Erstellung von Metadaten für die Verknüpfung von Clustern“ erstellten Metadaten für die HDFS-Verknüpfung wiederverwendet.

1. Erstellen Sie einen neuen Big-Data-Batch-Job mittels Spark-Framework.

Für die Big-Data-Verarbeitung lassen sich mit Talend Studio Batch- und Streaming-Jobs erstellen, die auf Spark oder MapReduce laufen. In diesem Fall erstellen wir einen Big-Data-Batch-Job auf Basis von Spark.

  1. Wählen Sie die Ansicht Integration aus.
  2. Stellen Sie sicher, dass die Metadaten für die Hadoop-Cluster-Verknüpfung und die HDFS-Verknüpfung im Projekt-Repository angelegt wurden.
  3. Erweitern Sie im Repository den Bereich Job Designs, klicken Sie mit der rechten Maustaste auf Big Data Batch und klicken Sie anschließend auf Create Big Data Batch Job.
  4. Geben Sie im Feld „Name“ ReadHDFS_Spark ein. Stellen Sie sicher, dass in der „Framework“-Liste Spark ausgewählt ist. Geben Sie im Feld „Purpose“ Read and sort customer data und im Feld „Description“ Read and sort customer data stored in HDFS from a Big Data Batch Job running on Spark ein und klicken Sie auf Finish.

Der Job erscheint im Repository unter Job Designs > Big Data Batch und kann im Job-Designer geöffnet werden.

2. Nutzen Sie die HDFS-Metadatendefinition und konfigurieren Sie die Verbindung zu HDFS und die Ausführung in Spark.

Anders als YARN lässt sich Spark mit unterschiedlichen Dateispeichersystemen wie HDFS, Amazon S3 oder Cassandra verbinden. Um Ihre Daten aus HDFS zu lesen, sollten Sie zunächst die Verbindung zu HDFS konfigurieren. Nutzen Sie dazu die im Repository verfügbaren Metadaten für die HDFS-Verknüpfung. Mit den Metadaten können Sie auch die Ausführung Ihres Jobs in Spark konfigurieren.

  1. Klicken Sie im Repository unter Metadata > HadoopCluster > MyHadoopCluster > HDFS auf MyHadoopCluster_HDFS und ziehen Sie diesen in den Job-Designer. Wählen Sie in der „Components“-Liste tHDFSConfiguration aus und klicken Sie auf OK. Das Fenster „Hadoop Configuration Update Confirmation“ öffnet sich.
  2. Damit Studio die Spark-Konfiguration so aktualisieren kann, dass sie Ihren Cluster-Metadaten entspricht, klicken Sie auf OK.
  3. Klicken Sie in der „Run“-Ansicht auf Spark Configuration und stellen Sie sicher, dass die Ausführung mit den im Repository verfügbaren Metadaten für die HDFS-Verknüpfung konfiguriert ist.

Für die Konfiguration Ihres Jobs haben Sie drei Optionen: lokaler Spark-Modus, Spark Standalone oder Spark on YARN. Im lokalen Modus können Sie Jobs in der Designphase testen. Ob Sie Spark Standalone oder Spark on YARN wählen, hängt davon ab, welche Spark-Version auf Ihrem Cluster installiert ist. Für dieses Tutorial verwenden wir Spark on YARN.

Für die Konfiguration nutzt Studio die HDFS-Verknüpfungsmetadaten, die ebenfalls für die Konfiguration der Cluster-Version, Distribution und Ressourcenmanager-Adresse verwendet werden.

3. Konfigurieren Sie die tFileInputDelimited-Komponente, um Ihre Daten aus HDFS zu lesen

Jetzt können Sie eine Verbindung zu HDFS herstellen und Ihr Job wird so konfiguriert, dass er auf Ihrem Cluster ausgeführt wird. Bei Jobs, die auf Spark laufen, sorgt die tFileInputDelimited-Komponente dafür, dass Daten aus verschiedenen Dateispeichersystemen gelesen werden können.

  1. Fügen Sie im Job-Designer tFileInputDelimited_1 hinzu.
  2. Per Doppelklick auf die Komponente wird die Component-Ansicht der tFileInputDelimited-Komponente geöffnen
  3. Achten Sie im Storage-Feld darauf, dass die tHDFSConfiguration-Komponente als Komponente für die Speicherkonfiguration ausgewählt ist.
  4. Um den Schema-Editor zu öffnen, klicken Sie auf Edit schema.
  5. Um Spalten zum Schema hinzuzufügen, klicken Sie dreimal auf das [+]-Symbol und geben Sie die Spaltennamen als CustomerID, FirstName und LastName ein.
  6. Um den Typ der CustomerID-Spalte zu ändern, klicken Sie auf das Type-Feld und dann auf Integer. Klicken Sie auf OK, um das Schema zu speichern.

    Alternative Methode: Nutzen Sie Metadaten aus dem Repository, um das Schema zu konfigurieren. Wenn Sie zusätzliche Informationen zu diesem Thema wünschen, sehen Sie sich das Tutorial „Metadaten erstellen und verwenden“ an
    .
  7. Um den Speicherort der zu lesenden Datei zu definieren, klicken Sie auf […] neben dem „Folder/File“-Feld, suchen Sie nach „user/student/CustomersData“ und klicken Sie auf OK.

Die tFileInputDelimited-Komponente ist jetzt so konfiguriert, dass Kundendaten aus HDFS gelesen werden.

Auch andere Dateitypen wie AVRO, JSON und XML werden unterstützt; die Dateien müssen keine Trennzeichen haben.

4. Sortieren Sie Kundendaten basierend auf dem Kunden-ID-Wert in aufsteigender Reihenfolge

  1. Fügen Sie tSortRow hinzu.
  2. Verknüpfen Sie die tFileInputDelimited-Komponente mit dem Namen MyHadoopCluster_HDFS mittels Main mit der tSortRow-Komponente.
  3. Per Doppelklick können Sie die Component-Ansicht der tSortRow-Komponente öffnen
  4. Um das Schema zu konfigurieren, klicken Sie auf Sync columns.
  5. Um neue Kriterien zur Criteria-Tabelle hinzuzufügen, klicken Sie auf [+] in der Schema-Spalte und wählen Sie dann CustomerID. Wählen Sie in der Spalte „sort num or alpha?“ num und in der Spalte „Order asc or desc?“ asc.

Die tSortRow-Komponente ist jetzt konfiguriert.

5. Zeigen Sie mithilfe einer tLogRow-Komponente die sortierten Daten in der Konsole an.

  1. Fügen Sie eine tLogRow-Komponente hinzu und verbinden Sie diese mittels Main mit der tSortRow-Komponente.
  2. Per Doppelklick können Sie die Component-Ansicht der tLogRow-Komponente öffnen
  3. Wählen Sie im Mode-Feld Table aus.

Ihr Job kann jetzt ausgeführt werden. Daten aus HDFS können gelesen, sortiert und in der Konsole angezeigt werden.

6. Führen Sie den Job aus und beobachten Sie das Ergebnis in der Konsole

Öffnen Sie in der Run-Ansicht den Tab „Basic Run“ und klicken Sie auf „Run“, um den Job auszuführen. Beachten Sie im Job-Designer, dass, sobald der Job fertig ausgeführt ist, 100 Prozent angezeigt wird.

Die sortierten Daten werden in der Konsole angezeigt.