En esta página se explica la terminología y los conceptos básicos del procesamiento de la canalización en Cloud Data Fusion.
El rendimiento de la canalización depende de los siguientes aspectos:
- El tamaño y las características de sus datos
- La estructura del flujo de procesamiento
- Tamaño del clúster
- Complementos que usa tu flujo de procesamiento de Cloud Data Fusion
Terminología de procesamiento de la canalización en Cloud Data Fusion
La siguiente terminología se aplica al procesamiento de flujos de trabajo en Cloud Data Fusion.
- Tipo de máquina
- Tipo de máquinas virtuales (VMs) utilizadas (CPU, memoria).
- Clúster
- Un grupo de máquinas virtuales que trabajan conjuntamente para gestionar tareas de procesamiento de datos a gran escala.
- Nodos maestros y de trabajador
- Máquinas físicas o virtuales que pueden realizar procesos. Los nodos maestros suelen coordinar el trabajo. Los nodos de trabajo ejecutan los ejecutores que procesan los datos. Tienen características de máquina (cantidad de memoria y número de vCores disponibles para los procesos).
- vCores, núcleos o CPUs
- Un recurso que realiza cálculos. Normalmente, los nodos proporcionan una cierta cantidad de núcleos y los ejecutores solicitan una o varias CPUs. Equilibra este valor con la memoria o puede que no aproveches al máximo tu clúster.
- Controlador
- Una sola VM que actúa como coordinador central de todo el clúster. Gestiona las tareas, programa el trabajo en los nodos de trabajador y monitoriza el progreso de las tareas.
- Albaceas
- Varias máquinas virtuales que realizan las tareas de procesamiento de datos reales, según las instrucciones del controlador. Tus datos se particionan y distribuyen entre estos ejecutores para procesarse en paralelo. Para utilizar todos los ejecutores, debes tener suficientes divisiones.
- Divisiones o particiones
- Un conjunto de datos se divide en divisiones (también llamadas particiones) para procesar los datos en paralelo. Si no tienes suficientes divisiones, no podrás utilizar todo el clúster.
Introducción al ajuste del rendimiento
Los flujos de trabajo se ejecutan en clústeres de máquinas. Cuando elijas ejecutar flujos de procesamiento de Cloud Data Fusion en clústeres de Dataproc (que es el aprovisionador recomendado), se usará YARN (Yet Another Resource Negotiator) en segundo plano. Dataproc utiliza YARN para gestionar los recursos del clúster. Cuando envías una canalización de Cloud Data Fusion a un clúster de Dataproc, la tarea de Apache Spark subyacente utiliza YARN para la asignación de recursos y la programación de tareas.
Un clúster consta de nodos maestros y de trabajador. Los nodos maestros suelen ser responsables de coordinar el trabajo, mientras que los nodos de trabajador realizan el trabajo en sí. Los clústeres suelen tener un número reducido de nodos maestros (uno o tres) y un gran número de trabajadores. YARN se usa como sistema de coordinación del trabajo. YARN ejecuta un servicio Resource Manager en el nodo maestro y un servicio Node Manager en cada nodo de trabajo. Los gestores de recursos se coordinan con todos los gestores de nodos para determinar dónde crear y ejecutar contenedores en el clúster.
En cada nodo de trabajador, Node Manager reserva una parte de la memoria y las CPUs de la máquina disponibles para ejecutar contenedores de YARN. Por ejemplo, en un clúster de Dataproc, si los nodos de trabajador son VMs n1-standard-4 (4 CPU y 15 GB de memoria), cada Node Manager reservará 4 CPUs y 12 GB de memoria para ejecutar contenedores YARN. Los 3 GB de memoria restantes se dejan para los demás servicios de Hadoop que se ejecutan en el nodo.
Cuando se ejecuta una canalización en YARN, se iniciarán un controlador de flujo de trabajo de canalización, un controlador de Spark y muchos ejecutores de Spark en Dataproc.
El controlador de flujo de trabajo se encarga de iniciar uno o varios programas de Spark que componen una canalización. El controlador de flujo de trabajo no suele hacer mucho. Cada programa de Spark ejecuta un único controlador de Spark y varios ejecutores de Spark. El controlador coordina el trabajo entre los ejecutores, pero normalmente no realiza ningún trabajo real. La mayor parte del trabajo real lo realizan los ejecutores de Spark.
Siguientes pasos
- Consulta información sobre el procesamiento en paralelo en Cloud Data Fusion.