Nesta página, explicamos a terminologia e os conceitos básicos do processamento de pipeline no Cloud Data Fusion.
A performance do pipeline depende dos seguintes aspectos:
- O tamanho e as características dos seus dados
- A estrutura do pipeline
- Dimensionamento de cluster
- Plug-ins usados pelo pipeline do Cloud Data Fusion
Terminologia de processamento de pipeline no Cloud Data Fusion
A terminologia a seguir se aplica ao processamento de pipeline no Cloud Data Fusion.
- Tipo de máquina
- Tipo de máquinas virtuais (VMs) usadas (CPU, memória).
- Cluster
- Um grupo de VMs que trabalham juntas para lidar com tarefas de processamento de dados em grande escala.
- Nós mestres e de trabalho
- Máquinas físicas ou virtuais que podem fazer processamento. Os nós mestres geralmente coordenam o trabalho. Os nós de trabalho executam executores que processam dados. Eles têm características de máquina (quantidade de memória e número de vCores disponíveis para processos).
- vCores, núcleos ou CPUs
- Um recurso que faz computação. Normalmente, os nós fornecem uma certa quantidade de núcleos, e os executores solicitam uma ou algumas CPUs. Equilibre isso com a memória, ou você pode subutilizar seu cluster.
- Driver
- Uma única VM que atua como o coordenador central de todo o cluster. Ele gerencia tarefas, programa o trabalho em nós de worker e monitora o progresso do job.
- Executores
- Várias VMs realizando as tarefas de processamento de dados reais, conforme instruído pelo driver. Seus dados são particionados e distribuídos entre esses executores para processamento paralelo. Para usar todos os executores, é preciso ter divisões suficientes.
- Divisões ou partições
- Um conjunto de dados é dividido em divisões (outro nome para partições) para processar dados em paralelo. Se você não tiver divisões suficientes, não poderá usar todo o cluster.
Visão geral do ajuste de desempenho
Os pipelines são executados em clusters de máquinas. Quando você escolhe executar pipelines do Cloud Data Fusion em clusters do Dataproc (que é o provisionador recomendado), ele usa o YARN (Yet Another Resource Negotiator) em segundo plano. O Dataproc usa o YARN para o gerenciamento de recursos no cluster. Quando você envia um pipeline do Cloud Data Fusion para um cluster do Dataproc, o job do Apache Spark aproveita o YARN para a alocação de recursos e a programação de tarefas.
Um cluster consiste em nós mestre e de trabalho. Os nós mestres geralmente são responsáveis por coordenar o trabalho, enquanto os nós de trabalho executam o trabalho real. Os clusters normalmente têm um pequeno número de nós mestre (um ou três) e um grande número de workers. O YARN é usado como o sistema de coordenação de trabalho. O YARN executa um serviço do Resource Manager no nó mestre e um serviço do Node Manager em cada nó de trabalho. Os Resource Managers coordenam entre todos os Node Managers para determinar onde criar e executar contêineres no cluster.
Em cada nó de trabalho, o Node Manager reserva uma parte da memória e das CPUs da máquina disponíveis para executar contêineres do YARN. Por exemplo, em um cluster do Dataproc, se os nós de worker forem VMs n1-standard-4 (4 CPUs, 15 GB de memória), cada gerenciador de nós reservará 4 CPUs e 12 GB de memória para a execução de contêineres YARN. Os 3 GB restantes de memória são reservados para os outros serviços do Hadoop em execução no nó.
Quando um pipeline é executado no YARN, ele inicia um driver de fluxo de trabalho do pipeline, um driver do Spark e muitos executores do Spark no Dataproc.
O driver de fluxo de trabalho é responsável por iniciar um ou mais programas do Spark que compõem um pipeline. O driver do fluxo de trabalho geralmente não faz muito trabalho. Cada programa do Spark executa um único driver e vários executores do Spark. O driver coordena o trabalho entre os executores, mas geralmente não realiza nenhum trabalho real. A maior parte do trabalho real é realizada pelos executores do Spark.
A seguir
- Saiba mais sobre o processamento paralelo no Cloud Data Fusion.