Escribir y leer datos en HDFS

En este tutorial, genere datos aleatorios y escríbalos en HDFS. A continuación, lea los datos desde HDFS, ordénelos y muestre el resultado en la Consola.

Este tutorial utiliza la versión 6 de Talend Data Fabric Studio y un clúster de Hadoop: Cloudera CDH, versión 5.4.

1. Cree una nueva Tarea estándar

  1. Asegúrese de que está seleccionada la perspectiva Integration (Integración).
  2. Para asegurarse de que se hayan creado los metadatos para la conexión con el clúster de Hadoop y HDFS en Project Repository (Repositorio de proyectos), expanda el Hadoop Cluster (Clúster de Hadoop).
  3. En el Repository (Repositorio), expanda Job Designs (Diseños de tarea), haga clic con el botón derecho en Standard (Estándar) y luego en Create Standard Job (Crear tarea estándar). En el campo Name (Nombre) del asistente de Nueva tarea, escriba ReadWriteHDFS. En el campo Purpose (Finalidad), escriba Leer/escribir datos en HDFS, en el campo Description (Descripción), escriba Tarea estándar para escribir y leer datos de clientes a y desde HDFS, y haga clic en Finish (Terminar). La Tarea se abrirá en el Diseñador de tareas.
  4. 2. Añada y configure un componente tRowGenerator para generar datos de cliente aleatorios.
  5. Para generar datos de cliente aleatorios, en el Job Designer (Diseñador de tareas) añada un tRowGenerator.
  6. Para ajustar los parámetros de esquema y función para el componente tRowGenerator, haga doble clic en el tRowGenerator_1.
  7. Para añadir columnas al esquema, haga clic en el icono [+] tres veces e introduzca los nombres de columna CustomerID, FirstName y LastName. A continuación, configurará los atributos de estos campos.
  8. Para cambiar el tipo de la columna CustomerID, haga clic en el campo Type (Tipo), Integer (Entero) y configure el campo Functions (Funciones) de las tres columnas a random(int,int), TalendDataGenerator.getFirstName() y TalendDataGenerator.getLastName(), respectivamente.
  9. En la tabla, seleccione la columna CustomerID y luego en la pestaña de parámetros Functions (Funciones) ajuste el valor máximo a 1000.
  10. En el campo Number of Rows (Número de filas) de RowGenerator, introduzca 1000 y haga clic en OK (Aceptar) para guardar la configuración.

2. Escribir datos en HDFS

Para ello creará un nuevo componente tHDFSOutput que reutilizará los metadatos de HDFS existentes que estén disponibles en el Project Repository (Repositorio de proyectos).

  1. Desde el Repository (Repositorio), en Metadata (Metadatos) > HadoopCluster > MyHadoopCluster > HDFS, haga clic en MyHadoopCluster_HDFS y arrástrelo al Job Designer (Diseñador de tareas).
  2. En la lista Components (Componentes), haga clic en tHDFSOutput y luego en OK.
  3. Cree un flujo de datos desde el componente tRowGenerator_1 al componente MyHadoopCluster_HDFS enlazando los dos componentes con la fila Main (Principal) y luego haciendo doble clic en el componente MyHadoopCluster_HDFS para abrir la vista Component (Componente).

    Fíjese que el componente ya está configurado con la información de conexión de metadatos HDFS predefinida.
    .
  4. En la casilla File Name (Nombre de archivo), introduzca “/user/student/CustomersData” y en la lista Action (Acción) seleccione Overwrite (Sobrescribir).

Con ello queda finalizada la primera subtarea de escritura de datos a HDFS. Toma los datos generados en el tRowGenerator que creó anteriormente y los escribe a HDFS utilizando una conexión definida mediante metadatos.

3. Leer datos desde HDFS

A continuación creará una subtarea para leer los datos de cliente en HDFS, ordenarlos y mostrarlos en la consola. Para ello creará un nuevo componente tHDFSInput que reutilizará los metadatos de HDFS existentes que estén disponibles en el Repositorio de proyectos.

  1. Desde el Repository (Repositorio), en Metadata (Metadatos) > HadoopCluster > MyHadoopCluster > HDFS, haga clic en MyHadoopCluster_HDFS y arrástrelo al Diseñador de tareas.
  2. En la lista Components (Componentes), haga clic en tHDFSInput y luego en OK.
  3. Para abrir la vista de componente del componente de entrada MyHadoopCluster_HDFS, haga doble clic en el componente de entradaMyHadoopCluster_HDFS.

    Fíjese que el componente ya está configurado con la información de conexión de metadatos HDFS predefinida.
    .
  4. En la casilla File Name (Nombre de archivo), introduzca /user/student/CustomersData.

4. Especifique el esquema en el componente de entrada MyHadoopCluster_HDFS para que lea los datos desde HDFS

  1. Para abrir el editor de esquemas, en la vista Component (Componente) del componente de entrada MyHadoopCluster_HDFS haga clic en Edit schema (Editar esquema).
  2. Para añadir columnas al esquema, haga clic en el icono [+] tres veces e introduzca los nombres de columna CustomerID, FirstName y LastName.
  3. Para cambiar el tipo de la columna CustomerID, haga clic en el campo Type (Tipo) y en Integer (Entero).

    Aviso: Este esquema es el mismo que en tRowGenerator y tHDFSOutput. Puede copiarlo de cualquiera de esos componentes y pegarlo en este esquema.
    .
  4. Conecte el componente tRowGenerator al componente de entrada MyHadoopCluster_HDFS mediante el activador OnSubjobOk.

5. Ordene los datos en orden ascendente de ID de cliente con el componente tSortRow.

  1. Añada un componente tSortRow y conéctelo al componente de entrada MyHadoopCluster_HDFS con el Main (Principal).
  2. Para abrir la vista Component (Componente) del componente tSortRow, haga doble clic en el componente.
  3. Para configurar el esquema, haga clic en Sync columns (Sincronizar columnas).
  4. Para añadir nuevos criterios a la tabla Criteria (Criterios) haga clic en el icono [+] y en la columna Schema (Esquema) introduzca CustomerID. En la columna Sort num or alpha? (¿Ordenar num. o alfa.?), seleccione num y en la columna Order asc or desc?(¿Orden asc. o desc.?) seleccione asc.

6. Mostrar los datos ordenados en la consola mediante el componente tLogRow

  1. Añada un componente tLogRow y conéctelo al componente tSortRow con el Main (Principal).
  2. Para abrir la vista Component (Componente) del componente tLogRow, haga doble clic en el componente.
  3. En el panel Mode (Modalidad), seleccione Table (Tabla).

Su Tarea ya está lista para ser ejecutada. En primer lugar, genera datos y los escribe en HDFS. A continuación, lee los datos desde HDFS, los ordena y los muestra en la consola.

7. Ejecutar la Tarea y observar el resultado en la consola

  1. Para ejecutar la Tarea, en la vista Run (Ejecutar) haga clic en Run (Ejecutar).
  2. Los datos ordenados se muestran en la consola.