Talend: sistema de archivos distribuido Hadoop

En este capítulo, aprendamos en detalle cómo funciona Talend con el sistema de archivos distribuido Hadoop.

Configuración y requisitos previos

Antes de continuar con Talend con HDFS, debemos conocer la configuración y los requisitos previos que se deben cumplir para este propósito.

Aquí estamos ejecutando Cloudera Quickstart 5.10 VM en una caja virtual. Se debe utilizar una red de solo host en esta máquina virtual.

IP de red solo de host: 192.168.56.101

También debe tener el mismo host ejecutándose en cloudera Manager.

Ahora en su sistema Windows, vaya a c: \ Windows \ System32 \ Drivers \ etc \ hosts y edite este archivo usando el Bloc de notas como se muestra a continuación.

Del mismo modo, en su máquina virtual de inicio rápido de cloudera, edite su archivo / etc / hosts como se muestra a continuación.

sudo gedit /etc/hosts

Configuración de la conexión Hadoop

En el panel del repositorio, vaya a Metadatos. Haga clic con el botón derecho en Hadoop Cluster y cree un nuevo clúster. Proporcione el nombre, el propósito y la descripción de esta conexión de clúster de Hadoop.

Haga clic en Siguiente.

Seleccione la distribución como cloudera y elija la versión que está utilizando. Seleccione la opción de recuperación de configuración y haga clic en Siguiente.

Ingrese las credenciales del administrador (URI con puerto, nombre de usuario, contraseña) como se muestra a continuación y haga clic en Conectar. Si los detalles son correctos, obtendrá Cloudera QuickStart en clústeres descubiertos.

Haga clic en Obtener. Esto buscará todas las conexiones y configuraciones para HDFS, YARN, HBASE, HIVE.

Seleccione Todo y haga clic en Finalizar.

Tenga en cuenta que todos los parámetros de conexión se completarán automáticamente. Mencione cloudera en el nombre de usuario y haga clic en Finalizar.

Con esto, se ha conectado correctamente a un clúster de Hadoop.

Conexión a HDFS

En este trabajo, enumeraremos todos los directorios y archivos que están presentes en HDFS.

En primer lugar, crearemos un trabajo y luego le agregaremos componentes HDFS. Haga clic con el botón derecho en el diseño del trabajo y cree un nuevo trabajo: hadoopjob.

Ahora agregue 2 componentes de la paleta: tHDFSConnection y tHDFSList. Haga clic derecho en tHDFSConnection y conecte estos 2 componentes usando el disparador 'OnSubJobOk'.

Ahora, configure ambos componentes de talend hdfs.

En tHDFSConnection, elija Repositorio como Tipo de propiedad y seleccione el clúster de cloudera de Hadoop que creó anteriormente. Completará automáticamente todos los detalles necesarios para este componente.

En tHDFSList, seleccione "Usar una conexión existente" y en la lista de componentes elija la tHDFSConnection que configuró.

Proporcione la ruta de inicio de HDFS en la opción HDFS Directory y haga clic en el botón Examinar a la derecha.

Si ha establecido la conexión correctamente con las configuraciones mencionadas anteriormente, verá una ventana como se muestra a continuación. Enumerará todos los directorios y archivos presentes en el inicio de HDFS.

Puede verificar esto verificando su HDFS en cloudera.

Leyendo archivo desde HDFS

En esta sección, entendamos cómo leer un archivo de HDFS en Talend. Puede crear un nuevo trabajo para este propósito, sin embargo, aquí estamos usando el existente.

Arrastra y suelta 3 componentes: tHDFSConnection, tHDFSInput y tLogRow desde la paleta a la ventana del diseñador.

Haga clic derecho en tHDFSConnection y conecte el componente tHDFSInput usando el disparador 'OnSubJobOk'.

Haga clic con el botón derecho en tHDFSInput y arrastre un enlace principal a tLogRow.

Tenga en cuenta que tHDFSConnection tendrá una configuración similar a la anterior. En tHDFSInput, seleccione "Usar una conexión existente" y de la lista de componentes, elija tHDFSConnection.

En el Nombre de archivo, ingrese la ruta HDFS del archivo que desea leer. Aquí estamos leyendo un archivo de texto simple, por lo que nuestro tipo de archivo es Archivo de texto. De manera similar, según su entrada, complete el separador de fila, el separador de campo y los detalles del encabezado como se menciona a continuación. Finalmente, haga clic en el botón Editar esquema.

Dado que nuestro archivo solo tiene texto sin formato, estamos agregando solo una columna de tipo String. Ahora, haz clic en Aceptar.

Note - Cuando su entrada tiene múltiples columnas de diferentes tipos, debe mencionar el esquema aquí en consecuencia.

En el componente tLogRow, haga clic en Sincronizar columnas en editar esquema.

Seleccione el modo en el que desea que se imprima su salida.

Finalmente, haga clic en Ejecutar para ejecutar el trabajo.

Una vez que haya leído correctamente un archivo HDFS, podrá ver el siguiente resultado.

Escribir archivo en HDFS

Veamos cómo escribir un archivo desde HDFS en Talend. Arrastra y suelta 3 componentes: tHDFSConnection, tFileInputDelimited y tHDFSOutput de la paleta a la ventana del diseñador.

Haga clic con el botón derecho en tHDFSConnection y conecte el componente tFileInputDelimited usando el disparador 'OnSubJobOk'.

Haga clic con el botón derecho en tFileInputDelimited y arrastre un enlace principal a tHDFSOutput.

Tenga en cuenta que tHDFSConnection tendrá una configuración similar a la anterior.

Ahora, en tFileInputDelimited, proporcione la ruta del archivo de entrada en la opción Nombre de archivo / Transmisión. Aquí estamos usando un archivo csv como entrada, por lo tanto, el separador de campo es ",".

Seleccione el encabezado, pie de página, límite de acuerdo con su archivo de entrada. Tenga en cuenta que aquí nuestro encabezado es 1 porque la fila 1 contiene los nombres de las columnas y el límite es 3 porque estamos escribiendo solo las primeras 3 filas en HDFS.

Ahora, haga clic en editar esquema.

Ahora, según nuestro archivo de entrada, defina el esquema. Nuestro archivo de entrada tiene 3 columnas como se menciona a continuación.

En el componente tHDFSOutput, haga clic en sincronizar columnas. Luego, seleccione tHDFSConnection en Usar una conexión existente. Además, en Nombre de archivo, proporcione una ruta HDFS donde desea escribir su archivo.

Tenga en cuenta que el tipo de archivo será archivo de texto, la acción será "crear", el separador de filas será "\ n" y el separador de campo es ";"

Finalmente, haga clic en Ejecutar para ejecutar su trabajo. Una vez que el trabajo se haya ejecutado correctamente, verifique si su archivo está en HDFS.

Ejecute el siguiente comando hdfs con la ruta de salida que mencionó en su trabajo.

hdfs dfs -cat /input/talendwrite

Verá el siguiente resultado si tiene éxito al escribir en HDFS.