Este documento mostra como ativar os aprimoramentos de desempenho do Dataproc Spark para ajudar seus jobs do Dataproc Spark a processar mais dados em menos tempo com custos reduzidos.
As melhorias de desempenho do Dataproc Spark incluem:
- Melhorias no Spark Optimizer:
- Regras do otimizador criadas para melhores planos Spark
- Melhoria no desempenho do conector do BigQuery do Dataproc quando usado em jobs do Spark
- Melhorias na execução do Spark:
- Melhorias no mecanismo de execução do Spark
Outras melhorias de desempenho do Dataproc: consulte o armazenamento em cache de cluster do Dataproc, que ajuda a reduzir o tempo gasto no acesso a dados no Cloud Storage.
Como ativar melhorias de desempenho do Dataproc Spark
É possível usar o console do Google Cloud, a CLI do Google Cloud e a API Dataproc para ativar melhorias de desempenho do Dataproc Spark ao criar um cluster do Dataproc no Compute Engine ou ao enviar o job do Spark para o cluster.
Console
Ativar melhorias na criação de clusters
Realize as etapas a seguir para ativar a otimização do Spark e as melhorias de execução ao criar um cluster do Dataproc. Os aprimoramentos ativados permanecem em vigor para todos os jobs do Spark enviadas ao cluster, a menos que você desative as melhorias de um job específico quando você enviar o job. Por padrão, os aprimoramentos de desempenho do Dataproc Spark são desativados em um cluster do Dataproc.
- No console do Google Cloud, abra o app Dataproc Criar um cluster página.
- No formulário Criar cluster do Dataproc, clique em Criar na Cluster no Compute Engine.
- Na página Criar um cluster do Dataproc no Compute Engine,
clique no painel Personalizar cluster e role até a
Seção Propriedades do cluster.
- Para ativar as melhorias de otimização do Spark:
- Clique em + ADICIONAR PROPRIEDADES.
- Selecione spark na lista Prefixo e adicione "spark.dataproc.enhanced.optimizer.enabled" no campo Chave e "verdadeiro" no campo Valor.
- Para ativar as melhorias na execução do Spark:
- Clique em + ADICIONAR PROPRIEDADES.
- Selecione spark na lista Prefixo e adicione "spark.dataproc.enhanced.execution.enabled" no campo Chave e "verdadeiro" no campo Valor.
- Para ativar as melhorias de otimização do Spark:
- Preencha ou confirme os outros campos de criação de cluster e clique em Criar.
Ativar melhorias no envio de jobs
Siga as etapas abaixo para ativar otimizações do Spark e melhorias de execução para um job do Spark. Por padrão, as melhorias de desempenho do Dataproc Spark estão desativadas nos jobs do Spark, a menos que você ative as melhorias ao criar um cluster de job ou ativá-las para um job específico.
- No console do Google Cloud, abra a página Jobs do Dataproc.
- Na página Jobs, clique em Enviar job e role até o job desejado.
Seção Propriedades.
- Para ativar as melhorias de otimização do Spark:
- Clique em + ADICIONAR PROPRIEDADES. Adicione "spark.dataproc.enhanced.optimizer.enabled" no campo Chave e "true" no campo Valor.
- Para ativar as melhorias de execução do Spark:
- Clique em + ADICIONAR PROPRIEDADES.
- Adicionar "spark.dataproc.recommended.execution.enabled" No campo Chave e "true" no campo Valor.
- Para ativar as melhorias de otimização do Spark:
- Preencha o preenchimento ou a confirmação dos outros campos de envio de vagas e, em seguida, Clique em Enviar.
gcloud
Ativar melhorias na criação de clusters
Siga as etapas abaixo para ativar as melhorias de execução e otimização do Spark ao criar um cluster do Dataproc. Os aprimoramentos ativados permanecem em vigor para todos os jobs do Spark enviadas ao cluster, a menos que você desative as melhorias de um job específico quando você enviar o job. Por padrão, os aprimoramentos de desempenho do Dataproc Spark são desativados em um cluster do Dataproc.
Execute o comando a seguir: gcloud dataproc clusters create localmente em uma janela de terminal ou Cloud Shell:
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT_ID \ --region=REGION \ --image-version=IMAGE \ --properties=PROPERTIES
Observações:
- CLUSTER_NAME: o nome do cluster, que precisa ser exclusivo em um projeto. O nome precisa começar com uma letra minúscula e pode conter até 51 letras minúsculas, números e hifens. Ele não pode terminar com um hífen. O nome de um cluster excluído pode ser reutilizado.
- PROJECT_ID: o projeto a ser associado ao cluster.
- REGION: a
região do Compute Engine
em que o cluster será localizado, como
us-central1
.- É possível adicionar a flag
--zone=ZONE
opcional para especificar uma zona dentro da região especificada, comous-central1-a
. Se você não especificar uma zona, o recurso de colocação de zona automática do Dataproc vai selecionar uma zona com a região especificada.
- É possível adicionar a flag
- IMAGE: as melhorias de desempenho de execução e do otimizador do Dataproc Spark
estão disponíveis nas versões de imagem do Dataproc
2.0.69+
e2.1.17+
e versões mais recentes. Se você omitir essa sinalização, o Dataproc selecionará a versão subsecundária mais recente do Dataproc padrão no Compute Engine padrão para o cluster (consulte Versão de imagem padrão do Dataproc). PROPERTIES:
- Para ativar as melhorias de otimização do Spark, especifique:
spark:spark.dataproc.enhanced.optimizer.enabled=true
- Para ativar os aprimoramentos de execução do Spark, especifique:
spark:spark.dataproc.enhanced.execution.enabled=true
- Para ativar a otimização e as melhorias de execução do Spark, especifique:
spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
Ativar melhorias no envio de jobs
Siga as etapas abaixo para ativar otimizações do Spark e melhorias de execução para um job do Spark. Por padrão, as melhorias de desempenho do Dataproc Spark estão desativadas nos jobs do Spark, a menos que você ative as melhorias ao criar um cluster de job ou ativá-las para um job específico.
Execute o comando gcloud dataproc jobs submit a seguir localmente em uma janela de terminal ou no Cloud Shell.
gcloud dataproc jobs submit SPARK_JOB_TYPE \ --cluster=CLUSTER_NAME \ --region=REGION \ --properties=PROPERTIES
Observações:
- SPARK_JOB_TYPE: especifique
spark
,pyspark
,spark-sql
ouspark-r
. - CLUSTER_NAME: o nome do job em que ele será executado.
- REGION: a região em que o cluster está localizado.
PROPERTIES:
- Para ativar as melhorias de otimização do Spark, especifique:
spark.dataproc.enhanced.optimizer.enabled=true
- Para ativar os aprimoramentos de execução do Spark, especifique:
spark.dataproc.enhanced.execution.enabled=true
- Para ativar a otimização do Spark e os aprimoramentos de execução, especifique:
spark.dataproc.enhanced.optimizer.enabled=true,spark.dataproc.enhanced.execution.enabled
- SPARK_JOB_TYPE: especifique
API
Ativar melhorias na criação de clusters
Realize as etapas a seguir para ativar a otimização do Spark e as melhorias de execução ao criar um cluster do Dataproc. Os aprimoramentos ativados permanecem em vigor para todos os jobs do Spark enviadas ao cluster, a menos que você desative as melhorias de um job específico quando você enviar o job. Por padrão, os aprimoramentos de desempenho do Dataproc Spark são desativados em um cluster do Dataproc.
Especifique o seguinte
SoftwareConfig.properties
como parte de uma solicitaçãoclusters.create
:- Para ativar as melhorias de otimização do Spark, especifique:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true"
- Para ativar os aprimoramentos de execução do Spark, especifique:
"spark:spark.dataproc.enhanced.execution.enabled": "true"
- Para ativar a otimização do Spark e os aprimoramentos de execução, especifique:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true","spark:spark.dataproc.enhanced.execution.enabled": "true"
Ativar melhorias no envio de jobs
Siga as etapas abaixo para ativar otimizações do Spark e melhorias de execução para um job do Spark. Por padrão, as melhorias de desempenho do Dataproc Spark estão desativadas nos jobs do Spark, a menos que você ative as melhorias ao criar um cluster de job ou ativá-las para um job específico.
Especifique o seguinte
properties
para um SparkJob, PySparkJob, SparkSqlJob ou SparkRJob como parte de uma solicitaçãojobs.submit
:- Para ativar as melhorias de otimização do Spark, especifique:
"spark.dataproc.enhanced.optimizer.enabled=true"
- Para ativar os aprimoramentos de execução do Spark, especifique:
"spark.dataproc.enhanced.execution.enabled=true"
- Para ativar a otimização e as melhorias de execução do Spark, especifique:
"spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"