Daten in HDFS schreiben und lesen

In diesem Tutorial erstellen Sie zufällige Daten und schreiben diese in HDFS. Anschließend lesen Sie die Daten aus HDFS, sortieren sie und zeigen das Ergebnis in der Konsole an.

Für diese Anleitung benötigen Sie Talend Data Fabric Studio Version 6 und ein Hadoop-Cluster: Cloudera CDH Version 5.4.

1. Einen neuen Standardjob erstellen

  1. Wählen Sie die Perspektive Integration aus.
  2. Um sicherzustellen, dass die Hadoop-Clusterverbindungs- und HDFS-Verbindungsmetadaten im Project Repository erstellt wurden, erweitern Sie Hadoop Cluster.
  3. Erweitern Sie im Repository Job Designs, klicken Sie mit der rechten Maustaste auf Standard und klicken Sie anschließend auf Create Standard Job. Geben Sie im „New Job“-Assistenten bei „Name“ ReadWriteHDFS ein. Geben Sie bei „Purpose“ Read/Write data in HDFS ein und schreiben Sie bei „Description“ Standard job to write and read customers data to and from HDFS und klicken Sie auf Finish. Daraufhin öffnet sich der Job im Job Designer.
  4. Fügen Sie eine „tRowGenerator“-Komponente hinzu und konfigurieren Sie diese, um zufällige Kundendaten zu erstellen.
  5. Um zufällige Kundendaten zu erstellen, fügen Sie im Job Designer eine tRowGenerator-Komponente hinzu.
  6. Um die Schema- und Funktionsparameter für die „tRowGenerator“-Komponente einzustellen, doppelklicken Sie auf die tRowGenerator_1-Komponente.
  7. Um Spalten zum Schema hinzuzufügen, klicken Sie dreimal auf das [+]-Symbol und geben die Spaltennamen CustomerID, FirstName und LastName ein. Als Nächstes konfigurieren Sie die Attribute für diese Felder.
  8. Um den Typ für die Spalte „CustomerID“ zu ändern, klicken Sie auf das Feld Type und anschließend auf Integer. Setzen Sie dann das „Functions“-Feld der drei Spalten jeweils auf random(int,int), TalendDataGenerator.getFirstName() und TalendDataGenerator.getLastName().
  9. Wählen Sie in der Tabelle die Spalte CustomerID aus. Setzen Sie dann im Parametertab „Functions“ den maximalen Wert auf 1000.
  10. Geben Sie im Feld „Number of Rows for RowGenerator“ 1000 ein und klicken Sie auf OK, um die Konfiguration zu speichern.

3. Daten in HDFS schreiben

Dazu erstellen Sie eine neue „tHDFSOutput“-Komponente, die bestehende HDFS-Metadaten aus dem Project Repository wiederverwendet.

  1. Klicken Sie im Repository unter Metadata > HadoopCluster > MyHadoopCluster > HDFS auf MyHadoopCluster_HDFS und ziehen Sie es in den Job Designer.
  2. Wählen Sie in der „Components“-Liste tHDFSOutput aus und klicken Sie auf OK.
  3. Erstellen Sie einen Datenfluss von der „tRowGenerator_1“-Komponente zur „MyHadoopCluster_HDFS“-Komponente, indem Sie die beiden Komponenten mit der Zeile „Main“ verbinden und anschließend auf die MyHadoopCluster_HDFS-Komponente doppelklicken, um die Ansicht „Component“ zu öffnen.

    Beachten Sie, dass die Komponente bereits mit den vordefinierten HDFS-Metadatenverbindungsinformationen konfiguriert ist.
    .
  4. Geben Sie bei „File Name“ „/user/student/CustomersData“ ein und wählen Sie in der „Action“-Liste Overwrite aus.

Der erste Unterjob, um Daten in HDFS zu schreiben, ist jetzt abgeschlossen. Dieser nimmt die in der zuvor erstellten „tRowGenerator“-Komponente generierten Daten und schreibt sie mit einer anhand von Metadaten definierten Verbindung ins HDFS.

4. Daten aus HDFS lesen

Als Nächstes erstellen Sie einen Unterjob, um die Kundendaten in HDFS zu lesen, zu sortieren und in der Konsole anzuzeigen. Um die Kundendaten aus HDFS zu lesen, erstellen Sie eine neue „tHDFSInput“-Komponente, die Ihre bestehenden HDFS-Metadaten aus dem Project Repository wiederverwendet.

  1. Klicken Sie im Repository unter Metadata > HadoopCluster > MyHadoopCluster > HDFS auf MyHadoopCluster_HDFS und ziehen Sie es in den Job Designer.
  2. Wählen Sie in der „Components“-Liste tHDFSInput aus und klicken Sie auf OK.
  3. Um die Komponentenansicht der Inputkomponente „MyHadoopCluster_HDFS“ zu öffnen, doppelklicken Sie auf die Inputkomponente MyHadoopCluster_HDFS.

    Beachten Sie, dass die Komponente bereits mit den vordefinierten HDFS-Metadatenverbindungsinformationen konfiguriert ist.
    .
  4. Geben sie bei „File Name“ /user/student/CustomersData ein.

5. Das Schema in der Inputkomponente „MyHadoopCluster_HDFS“ festlegen, um die Daten aus HDFS zu lesen

  1. Klicken Sie in der „Component“-Ansicht der Inputkomponente „MyHadoopCluster_HDFS“ auf Edit schema, um den Schema-Editor zu öffnen.
  2. Um zum Schema Spalten hinzuzufügen, klicken Sie drei Mal auf das [+]-Symbol und geben Sie die Spaltennamen CustomerID, FirstName und LastName ein.
  3. Um den Typ für die Spalte „CustomerID“ zu ändern, klicken Sie auf das Feld Type und anschließend auf Integer.

    Hinweis: Dieses Schema ist das gleiche wie in „tRowGenerator“ und „tHDFSOutput“. Sie können es von einer der beiden Komponenten kopieren und in dieses Schema einfügen.
    .
  4. Verbinden Sie mithilfe des Triggers OnSubjobOk die Komponente „tRowGenerator“ mit der Inputkomponente „MyHadoopCluster_HDFS“.

6. Daten mit der „tSortRow“-Komponente in aufsteigender Reihenfolge der Kunden-ID sortieren

  1. Fügen Sie eine „tSortRow“-Komponente hinzu und verbinden Sie sie anhand der Main-Reihe mit der Inputkomponente „MyHadoopCluster_HDFS“.
  2. Doppelklicken Sie auf die Komponente, um die Ansicht „Component“ der „tSortRow“-Komponente zu öffnen.
  3. Um das Schema zu konfigurieren, klicken Sie auf Sync columns.
  4. Um neue Kriterien zur Tabelle „Criteria“ hinzuzufügen, klicken Sie auf das [+]-Symbol und geben Sie in der Spalte „Schema“ CustomerID ein. In der Spalte „sort num or alpha?“ wählen Sie num und in der Spalte „Order asc or desc?“ asc aus.

7. Die sortierten Daten in der Konsole mit einer „tLogRow“-Komponente anzeigen

  1. Fügen Sie eine „tLogRow“-Komponente hinzu und verbinden Sie sie anhand der Main-Reihe mit der Komponente „tSortRow“.
  2. Doppelklicken Sie auf die Komponente, um die Ansicht „Component“ in der „tLogRow“-Komponente zu öffnen.
  3. Wählen Sie unter „Mode“ Table aus.

Jetzt können Sie Ihren Job ausführen. Zuerst werden Daten erstellt und in HDFS geschrieben. Anschließend werden die Daten aus HDFS ausgelesen und sortiert in der Konsole angezeigt.

8. Den Job ausführen und das Ergebnis in der Konsole überprüfen

  1. Klicken Sie in der Run-Ansicht auf Run, um den Job auszuführen.
  2. Die sortierten Daten werden in der Konsole angezeigt.