Visão geral da performance do pipeline

Nesta página, explicamos a terminologia e os conceitos básicos do processamento de pipelines no Cloud Data Fusion.

A performance do pipeline depende dos seguintes aspectos:

  • O tamanho e as características dos seus dados
  • A estrutura do seu 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 pipelines no Cloud Data Fusion.

Tipo de máquina
Tipo de máquinas virtuais (VMs) usadas (CPU, memória).
Cluster
Um grupo de VMs trabalhando juntas para lidar com tarefas de processamento de dados em grande escala.
Nós mestre e de trabalho
Máquinas físicas ou virtuais que podem fazer o processamento. Os nós mestres geralmente coordenam o trabalho. Os nós de trabalho executam executores que processam dados. Elas 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 o cluster.
Driver
Uma única VM que atua como coordenadora 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 executando as tarefas reais de processamento de dados, conforme instruído pelo driver. Seus dados são particionados e distribuídos entre esses executores para processamento paralelo. Para usar todos os executores, você precisa 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 performance

Os pipelines são executados em clusters de máquinas. Quando você escolhe executar pipelines do Cloud Data Fusion em clusters do Managed Service para Apache Spark (o provisionador recomendado), ele usa o YARN (Yet Another Resource Negotiator) nos bastidores. O Managed Service for Apache Spark usa o YARN para gerenciamento de recursos no cluster. Quando você envia um pipeline do Cloud Data Fusion para um cluster do Serviço gerenciado para Apache Spark, o job do Apache Spark usa o YARN para alocação de recursos e 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 mestres (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 gerenciadores de recursos coordenam todos os gerenciadores de nós para determinar onde criar e executar contêineres no cluster.

YARN Resource Managers e Node Managers

Em cada nó de trabalho, o Node Manager reserva uma parte da memória e das CPUs disponíveis da máquina para executar contêineres do YARN. Por exemplo, em um cluster do Managed Service for Apache Spark, se os nós de worker forem VMs n1-standard-4 (4 CPUs, 15 GB de memória), cada Node Manager vai reservar 4 CPUs e 12 GB de memória para executar contêineres do YARN. Os 3 GB restantes são destinados aos outros serviços do Hadoop em execução no nó.

Quando um pipeline é executado no YARN, ele inicia um driver de fluxo de trabalho de pipeline, um driver do Spark e muitos executores do Spark no Managed Service para Apache Spark.

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 de 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 nenhuma tarefa real. A maior parte do trabalho real é realizada pelos executores do Spark.

A seguir