Principios básicos del Loader
Loader está desarrollado basado en el componente Sqoop de código abierto. Se utiliza para intercambiar datos y archivos entre MRS y bases de datos relacionales y sistemas de archivos. Loader puede importar datos desde bases de datos relacionales o servidores de archivos a los componentes HDFS y HBase, o exportar datos desde HDFS y HBase a bases de datos relacionales o servidores de archivos.
Un modelo de cargador consta de cliente de cargador y servidor de carga, como se muestra en Figura 1.
Tabla 1 describe las funciones de cada módulo mostrado en la figura anterior.
Módulo |
Descripción |
---|---|
Loader Client |
Cliente de Loader. Proporciona dos interfaces: web UI and CLI. |
Loader Server |
Servidor de Loader. Procesa solicitudes de operación enviadas desde el cliente, gestiona conectores y metadatos, envía trabajos de MapReduce y supervisa el estado de los trabajos de MapReduce. |
REST API |
Proporciona una API de Transferencia de Estado Representacional (RESTful) (HTTP + JSON) para procesar las solicitudes de operación enviadas desde el cliente. |
Job Scheduler |
Programador de trabajo simple. Ejecuta periódicamente trabajos de Loader. |
Transform Engine |
Motor de transformación de datos. Es compatible con la combinación de campo, el corte de cadena y el reverso de cadena. |
Execution Engine |
Motor de ejecución de trabajos de Loader. Ejecuta trabajos de Loader de manera de MapReduce. |
Submission Engine |
Motor de envío de trabajos de Loader. Envía trabajos de Loader a MapReduce. |
Job Manager |
Gestiona trabajos de Loader, incluyidas la creación, consulta, actualización, eliminación, activación, desactivación, inicio y detención de trabajos. |
Metadata Repository |
Repositorio de metadatos. Almacena y gestiona datos sobre conectores de Loader, procedimientos de transformación y trabajos. |
HA Manager |
Gestiona el estado activo/en espera de los procesos de Loader Server. El Loader Server tiene dos nodos que se implementan en modo activo/en espera. |
Loader importa o exporta trabajos en paralelo con trabajos de MapReduce. Algunos trabajos de importación o exportación pueden implicar solo las operaciones de Map, mientras que otros pueden implicar tanto las operaciones de Map como las de Reduce.
Loader implementa la tolerancia a fallas mediante MapReduce. Los trabajos se pueden reprogramar cuando se produce un error en la ejecución de un trabajo.
- Importación a datos a HBase
Cuando se realiza la operación de Map para trabajos de MapReduce, Loader obtiene datos de un origen de datos externo.
Cuando se realiza una operación Reduce para un trabajo de MapReduce, Loader habilita el mismo número de tareas de Reduce según el número de Regions. Las tareas Reduce reciben datos de tareas de Map, generan HFiles por Region y almacenan los HFiles en un directorio temporal de HDFS.
Cuando se envía un trabajo de MapReduce, Loader migra HFiles desde el directorio temporal al directorio HBase.
- Importación de datos a HDFS
Cuando se realiza una operación de Map para un trabajo de MapReduce, Loader obtiene datos de un origen de datos externo y los exporta a un directorio temporal (denominado export directory-ldtmp).
Cuando se envía un trabajo de MapReduce, Loader migra los datos del directorio temporal al directorio de salida.
- Exportación de datos a una base de datos relacional
Cuando se realiza una operación de Map para un trabajo de MapReduce, Loader obtiene datos de HDFS o HBase e inserta los datos en una tabla temporal (Staging Table) a través de la API de conectividad DataBase de Java (JDBC).
Cuando se envía un trabajo de MapReduce, Loader migra datos de la tabla temporal a una tabla formal.
- Exportación de datos a un sistema de archivo
Cuando se realiza una operación de Map para un trabajo de MapReduce, Loader obtiene datos de HDFS o HBase y escribe los datos en un directorio temporal del servidor de archivos.
Cuando se envía un trabajo de MapReduce, Loader migra datos del directorio temporal a un directorio formal.
Para obtener más información sobre la arquitectura y los principios del cargador, consulte https://sqoop.apache.org/docs/1.99.3/index.html.