Visão geral do desempenho do pipeline

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.

Resource Managers e Node Managers do YARN

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.

Drivers e executores

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