Vista geral do desempenho do pipeline

Esta página explica a terminologia e os conceitos básicos do processamento de pipelines no Cloud Data Fusion.

O desempenho do pipeline depende dos seguintes aspetos:

  • O tamanho e as caraterísticas dos seus dados
  • A estrutura do seu pipeline
  • Dimensionamento de clusters
  • Plug-ins que o pipeline do Cloud Data Fusion usa

Terminologia de processamento de pipelines no Cloud Data Fusion

A seguinte terminologia aplica-se 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 que trabalham em conjunto para processar tarefas de tratamento de dados em grande escala.
Nós principais e trabalhadores
Máquinas físicas ou virtuais que podem fazer o processamento. Normalmente, os nós principais coordenam o trabalho. Os nós de trabalho executam executores que tratam dados. Têm caraterísticas da máquina (quantidade de memória e número de vCores disponíveis para processos).
vCores, núcleos ou CPUs
Um recurso que faz processamento. Normalmente, os seus nós fornecem uma determinada quantidade de núcleos e os seus executores pedem um ou alguns CPUs. Equilibre isto com a memória ou pode subutilizar o cluster.
Controlador
Uma única VM que funciona como coordenador central para todo o cluster. Faz a gestão de tarefas, agenda o trabalho nos nós de trabalho e monitoriza o progresso das tarefas.
Executores
Várias VMs que executam as tarefas de processamento de dados reais, conforme indicado pelo controlador. Os seus dados são divididos e distribuídos por estes executores para processamento paralelo. Para usar todos os executores, tem de ter divisões suficientes.
Divisões ou partições
Um conjunto de dados é dividido em divisões (outras partições de nomes) para processar dados em paralelo. Se não tiver divisões suficientes, não pode usar todo o cluster.

Vista geral da otimização do desempenho

Os pipelines são executados em clusters de máquinas. Quando opta por executar pipelines do Cloud Data Fusion em clusters do Dataproc (que é o aprovisionador recomendado), usa o YARN (Yet Another Resource Negotiator) nos bastidores. O Dataproc usa o YARN para a gestão de recursos no cluster. Quando envia um pipeline do Cloud Data Fusion para um cluster do Dataproc, a tarefa subjacente do Apache Spark tira partido do YARN para a atribuição de recursos e o agendamento de tarefas.

Um cluster consiste em nós principais e de trabalho. Geralmente, os nós principais são responsáveis por coordenar o trabalho, enquanto os nós de trabalho realizam o trabalho real. Normalmente, os clusters têm um pequeno número de nós principais (um ou três) e um grande número de trabalhadores. O YARN é usado como o sistema de coordenação do trabalho. O YARN executa um serviço de gestor de recursos no nó principal e um serviço de gestor de nós em cada nó de trabalho. Os gestores de recursos coordenam-se entre todos os gestores de nós para determinar onde criar e executar contentores no cluster.

Gestores de recursos e gestores de nós do YARN

Em cada nó de trabalho, o Node Manager reserva uma parte da memória da máquina e das CPUs disponíveis para executar contentores YARN. Por exemplo, num cluster do Dataproc, se os nós de trabalho forem VMs n1-standard-4 (4 CPUs, 15 GB de memória), cada Node Manager reserva 4 CPUs e 12 GB de memória para executar contentores YARN. Os restantes 3 GB de memória são deixados para os outros serviços Hadoop em execução no nó.

Quando um pipeline é executado no YARN, inicia um controlador de fluxo de trabalho do pipeline, um controlador do Spark e muitos executores do Spark no Dataproc.

Drivers e executores

O controlador do fluxo de trabalho é responsável por iniciar um ou mais programas Spark que compõem um pipeline. Normalmente, o controlador do fluxo de trabalho não faz muito trabalho. Cada programa Spark executa um único controlador Spark e vários executores Spark. O controlador coordena o trabalho entre os executores, mas normalmente não realiza nenhum trabalho real. A maior parte do trabalho real é realizada pelos executores do Spark.

O que se segue?