Perguntas frequentes sobre o Dataproc sem servidor

Esta página contém perguntas frequentes sobre o Dataproc sem servidor com respostas.

Quando devo usar o Dataproc sem servidor para Spark em vez do Dataproc no Compute Engine?

  • Dataproc sem servidor:

    • Compatível com cargas de trabalho em lote do Spark e sessões interativas nos notebooks do Jupyter no kernel do PySpark.
    • O Dataproc sem servidor cria e gerencia sua carga de trabalho e a infraestrutura de sessão interativa.
  • Dataproc no Compute Engine:

    • Oferece suporte ao envio de diferentes tipos de jobs do Spark e jobs com base em outros componentes de código aberto, como Flink, Hadoop, Hive, Pig, Presto e outros.

    • Não cria nem gerencia infraestrutura. Você cria e gerencia os clusters do Dataproc.

O que posso fazer com o Dataproc sem servidor para Spark?

  • Execute jobs em lote.

  • Use o plug-in Dataproc JupyterLab para sessões de notebook interativas e em lote sem servidor.

  • Executar jobs de streaming usando as bibliotecas de streaming do Spark. Observação: o streaming não é um serviço gerenciado, portanto, você precisa gerenciar os pontos de verificação e as reinicializações.

  • Treinar modelos usando o Spark MLlib.

  • Use notebooks SQL interativos para exploração de dados, gráficos, série temporal e análises geoespaciais.

  • Orquestre o Dataproc sem servidor 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 de forma simultânea ou sequencial. O plano de execução afeta a cota de recursos do Google Cloud. É possível executar quantas cargas de trabalho forem permitidas pelas cotas do recurso em lote.

Posso usar uma imagem personalizada com o Dataproc sem servidor para Spark?

Posso especificar recursos de memória e disco para cargas de trabalho do Spark sem servidor do Dataproc?

Sim. É possível especificar níveis de disco e computação do executor premium e do driver e a quantidade de recursos de computação e disco do driver e do executor para alocar quando você enviar uma carga de trabalho (consulte Propriedades de alocação de recursos).

Como especificar o intervalo de endereços IP da 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 rede VPC sem servidor do Dataproc. /16 é um intervalo de endereços CIDR especificado pelo usuário comum para uma rede VPC sem servidor do Dataproc. É possível limitar o intervalo de endereços IP da rede com base no número de cargas de trabalho simultâneas que você planeja executar.

O Dataproc sem servidor oferece suporte à residência de dados?

Sim. Especifique a região em que a carga de trabalho será processada. Localize seus conjuntos de dados de entrada e saída na região especificada.

Como o Dataproc sem servidor seleciona uma zona na região especificada para executar a carga de trabalho?

O Dataproc sem servidor seleciona a zona do Compute Engine em que executa uma carga de trabalho com base na capacidade e na disponibilidade. Se uma zona ficar indisponível após o início de uma carga de trabalho, ela falhará e você precisará reenviar a carga de trabalho com falha.

Como as cargas de trabalho sem servidor do Dataproc 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 média execução, não para jobs de curta duração.

  • Manter dados que são 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 sem servidor?

Consulte as Notas de lançamento do Dataproc sem servidor.

Cargas de trabalho simultâneas competem por recursos?

As cargas de trabalho sem servidor do Dataproc só competirão por recursos se a cota de recursos for insuficiente para executar todas as cargas de trabalho em execução simultânea. Caso contrário, as cargas de trabalho serã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 do servidor de histórico permanente (PHS, na sigla em inglês) para uso com o Dataproc sem servidor é opcional.É possível usar o PHS para visualizar o evento do Spark e outros registros em um bucket especificado do Cloud Storage até o período padrão de preparo sem servidor do Dataproc e bucket temporário.

Quais registros do Spark sem servidor do Dataproc estão disponíveis?

Os registros de driver e executores 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 Spark ficam visíveis na interface da Web do Persistent History Server (PHS) enquanto a carga de trabalho está em execução (selecione PHS > Partial Applications na interface do PHS).

Se você configurar um PHS do Dataproc, ele fornecerá acesso permanente aos registros de eventos do Spark salvos no Cloud Storage, que fornecem insights sobre a execução do app Spark, como eventos do DAG e do 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 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 dois núcleos cada, ela vai executar tarefas 4 * 2 = 8 ao mesmo tempo. Ela também vai executar o mesmo número de tarefas para uma carga de trabalho que tenha dois executores com quatro núcleos cada. Como o número de núcleos para cada carga de trabalho é o mesmo, elas executam o mesmo número de tarefas. É possível usar a propriedade spark.executor.cores para definir o número de núcleos por executor para sua carga de trabalho do Dataproc sem servidor.

Quais métricas do Spark o Dataproc sem servidor usa para escalonamento automático?

O Dataproc sem servidor para Spark analisa as métricas de alocação dinâmica de maximum-needed e running do Spark para determinar se éescalonar verticalmentea mais ou para menos. Consulte Dataproc sem servidor para escalonamento automático do Spark.

Posso configurar o comportamento de escalonamento automático sem servidor do Dataproc 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:

  • 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 o processo de driver e de worker opera como processos da JVM. Nas linguagens da JVM, o arquivo JAR é a principal maneira de empacotar código. Você passa o arquivo JAR para o Dataproc sem servidor ao enviar uma carga de trabalho.