Esta página contém respostas para perguntas frequentes sobre o Dataproc Serverless.
Quando devo usar o Dataproc Serverless para Spark em vez do Dataproc no Compute Engine?
Dataproc sem servidor:
- Oferece suporte a cargas de trabalho em lote do Spark e sessões interativas em notebooks do kernel PySpark do Jupyter.
- O Dataproc sem servidor cria e gerencia a infraestrutura de carga de trabalho e sessão interativa.
Dataproc no Compute Engine:
Oferece suporte ao envio de diferentes tipos de jobs do Spark e jobs baseados em outros componentes de código aberto, como Flink, Hadoop, Hive, Pig, Presto e outros.
Não cria e gerencia a infraestrutura. Você cria e gerencia seus clusters do Dataproc.
O que posso fazer com o Dataproc Serverless para Spark?
Use o plug-in Dataproc JupyterLab para sessões de notebook interativas e em lote sem servidor.
Execute jobs de streaming usando bibliotecas do Spark Streaming. Observação: o streaming não é um serviço gerenciado. Portanto, é necessário gerenciar o checkpoint e as reinicializações.
Treine modelos usando o Spark MLlib.
Use notebooks SQL interativos para análise de dados, gráficos, série temporal e análises geoespaciais.
Orquestre o Dataproc Serverless para cargas de trabalho do Spark com o Cloud Composer, um serviço gerenciado do Apache Airflow.
Como devo configurar um plano de execução de carga de trabalho?
É possível executar cargas de trabalho simultaneamente ou sequencialmente. Seu plano de execução impacta a cota de recursos do Google Cloud. É possível executar tantos workloads em paralelo quanto as cotas de recursos em lote permitem.
Posso usar uma imagem personalizada com o Dataproc sem servidor para Spark?
- Sim. É possível usar uma imagem de contêiner personalizada em vez da imagem padrão. Consulte Usar contêineres personalizados com o Dataproc sem servidor para Spark.
Posso especificar recursos de memória e disco para cargas de trabalho do Dataproc Serverless para Spark?
Sim. É possível especificar níveis de disco e de computação do executor e do driver premium e a quantidade de recursos de disco e de computação do executor e do driver a serem alocados ao enviar uma carga de trabalho. Consulte Propriedades de alocação de recursos.
Como posso especificar o intervalo de endereços IP para minha rede VPC sem servidor do Dataproc?
As cargas de trabalho do Dataproc sem servidor para Spark são executadas no seu ambiente.
Cada driver e executor do Spark em uma carga de trabalho do Spark sem servidor consome um endereço IP interno na sua rede VPC sem servidor do Dataproc.
/16
é um intervalo de endereços CIDR especificado pelo usuário
para uma rede VPC sem servidor do Dataproc.
É possível limitar o intervalo de endereços IP da sua rede com base no número de cargas de trabalho simultâneas que você planeja executar.
O Dataproc Serverless oferece suporte à residência de dados?
Sim. Você especifica a região em que a carga de trabalho é processada. Localize os conjuntos de dados de entrada e saída na região especificada.
Como o Dataproc Serverless seleciona uma zona na região especificada para executar a carga de trabalho?
O Dataproc Serverless seleciona a zona do Compute Engine em que ele executa uma carga de trabalho com base na capacidade e na disponibilidade. Se uma zona ficar indisponível depois que uma carga de trabalho for iniciada, ela vai falhar e você vai precisar reenviar a carga de trabalho com falha.
Como as cargas de trabalho do Dataproc Serverless usam recursos de computação?
Cada carga de trabalho é executada nos próprios recursos de computação. Vários envios em lote não compartilham nem reutilizam recursos de computação.
Práticas recomendadas:
Otimize sua carga de trabalho para jobs de execução média, não para jobs de execução curta.
Persistência de dados acessados por várias cargas de trabalho no Cloud Storage.
Onde encontro informações sobre anúncios, recursos, correções de bugs, problemas conhecidos e descontinuações do Dataproc Serverless?
Consulte as notas da versão do Dataproc sem servidor.
As cargas de trabalho simultâneas competem por recursos?
As cargas de trabalho sem servidor do Dataproc competem por recursos apenas se a cota de recursos for insuficiente para executar todas as cargas de trabalho em execução simultaneamente. Caso contrário, as cargas de trabalho são totalmente isoladas umas das outras.
Como a cota do Dataproc sem servidor é alocada?
Os lotes do Dataproc sem servidor consomem recursos do Google Cloud. Consulte Cotas do Dataproc sem servidor para mais informações.
Preciso configurar um servidor de histórico permanente do Dataproc?
A configuração de um servidor de histórico persistente (PHS, na sigla em inglês) para uso com o Dataproc sem servidor é opcional.É possível usar o PHS para conferir o evento do Spark e outros registros em um bucket do Cloud Storage especificado até e após o período padrão de retenção (TTL) de 90 dias do bucket de preparo e temporário do Dataproc sem servidor.
Quais registros do Dataproc Serverless Spark estão disponíveis?
Os executores e registros do driver do Spark estão disponíveis no Cloud Logging durante e após a execução da carga de trabalho do Spark. Além disso, os aplicativos do Spark ficam visíveis na interface da Web do servidor de histórico persistente (PHS, na sigla em inglês) enquanto a carga de trabalho está em execução. Selecione PHS > Aplicativos incompletos na interface do PHS.
Se você configurar um PHS do Dataproc, ele vai fornecer acesso persistente aos registros de eventos do Spark salvos no Cloud Storage, que oferecem insights sobre a execução do app do Spark, como eventos DAG e executor.
Posso definir o número de executores para minha carga de trabalho do Spark?
Sim. É possível definir o número de executores para uma carga de trabalho do Spark usando a propriedade
spark.executor.instances
. No entanto, o número total de núcleos que uma carga de trabalho pode usar é mais importante
do que o número de executores, porque o Spark executa uma tarefa por núcleo. Por exemplo,
se uma carga de trabalho tiver quatro executores com duas núcleos cada, ela executará tarefas 4 * 2 = 8
ao mesmo tempo. E também vai executar o mesmo número de tarefas para uma carga de trabalho que
tem dois executores com quatro núcleos cada. Como o número de núcleos de cada carga de trabalho é o
mesmo, elas vão executar o mesmo número de tarefas. Use a propriedade
spark.executor.cores
para definir o número de núcleos por executor para sua carga de trabalho do Dataproc Serverless.
Quais métricas do Spark o Dataproc sem servidor usa para escalonamento automático?
O Dataproc Serverless para Spark analisa as métricas de alocação dinâmica do maximum-needed
e do running
do Spark para determinar se o escalonamento será para cima ou para baixo.
Consulte Dataproc sem servidor para escalonamento automático do Spark.
Posso configurar o comportamento de escalonamento automático do Dataproc sem servidor usando propriedades do Spark?
Sim. O escalonamento automático sem servidor do Dataproc é baseado na alocação dinâmica do Spark e é ativado por padrão. É possível ajustar as seguintes propriedades do Spark e propriedades de alocação dinâmica do Spark:
spark.executor.instances
spark.dynamicAllocation.initialExecutors
spark.dynamicAllocation.minExecutors
spark.dynamicAllocation.maxExecutors
Por que preciso empacotar meu código em um arquivo JAR para enviar minha carga de trabalho do Spark?
O Spark é escrito em Scala, o que significa que os processos do driver e do worker operam como processos da JVM. Em linguagens JVM, o arquivo JAR é a principal forma de empacotar o código. Você transmite o arquivo JAR para o Dataproc Serverless ao enviar uma carga de trabalho.