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.
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.
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?
- Saiba mais sobre o processamento em paralelo no Cloud Data Fusion.