Perguntas frequentes sobre a implantação sem servidor do Managed Service for Apache Spark

Esta página contém perguntas frequentes sobre a implantação sem servidor do Serviço Gerenciado para Apache Spark e as respectivas respostas. Salvo indicação em contrário, essas informações se aplicam apenas ao Serviço Gerenciado para Apache Spark sem servidor, não a implantações de cluster.

Quando devo usar a implantação sem servidor do Serviço Gerenciado para Apache Spark em vez da implantação de cluster do Serviço Gerenciado para Apache Spark?

  • Implantação sem servidor do Serviço Gerenciado para Apache Spark:

    • Oferece suporte a cargas de trabalho em lote do Spark e sessões interativas em notebooks do Jupyter do kernel PySpark.
    • Cria e gerencia a infraestrutura da carga de trabalho e da sessão interativa.
  • Implantação de cluster do Serviço Gerenciado para Apache Spark:

    • 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 nem gerencia a infraestrutura. Você cria e gerencia seus clusters do Serviço Gerenciado para Apache Spark.

O que posso fazer com a implantação sem servidor do Serviço Gerenciado para Apache Spark?

Como faço para configurar um plano de execução de carga de trabalho?

É possível executar cargas de trabalho simultaneamente ou em sequência. O plano de execução afeta sua Google Cloud cota de recursos. Você pode executar quantas cargas de trabalho em paralelo forem permitidas pelas cotas de recursos em lote.

Posso usar uma imagem personalizada com a implantação sem servidor do Serviço Gerenciado para Apache Spark?

Posso especificar recursos de memória e disco para cargas de trabalho do Serviço Gerenciado para Apache Spark?

Sim. É possível especificar níveis de computação e disco do driver e do executor premium e a quantidade de recursos de computação e disco do driver e do executor 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 da minha rede VPC do Serviço Gerenciado para Apache Spark?

As cargas de trabalho do Serviço Gerenciado para Apache 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 do Serviço Gerenciado para Apache Spark. /16 é um intervalo de endereços CIDR típico especificado pelo usuário para uma rede VPC do Serviço Gerenciado para Apache Spark. É 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 Serviço Gerenciado para Apache Spark 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 Serviço Gerenciado para Apache Spark seleciona uma zona na região especificada para executar a carga de trabalho?

O Serviço Gerenciado para Apache Spark seleciona a zona do Compute Engine em que executa uma carga de trabalho com base na capacidade e 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 do Serviço Gerenciado para Apache Spark 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 a carga de trabalho para jobs de execução média, não jobs de execução curta.

  • Persista os dados acessados por várias cargas de trabalho no Cloud Storage.

Onde posso encontrar informações sobre anúncios, recursos, correções de bugs, problemas conhecidos e descontinuações do Serviço Gerenciado para Apache Spark?

Consulte as notas de lançamento do Serviço Gerenciado para Apache Spark.

As cargas de trabalho simultâneas competem por recursos?

As cargas de trabalho do Serviço Gerenciado para Apache Spark só competem por recursos se a cota de recursos for insuficiente para executar todas as cargas de trabalho simultâneas. Caso contrário, as cargas de trabalho são totalmente isoladas umas das outras.

Como a cota do Serviço Gerenciado para Apache Spark é alocada?

Os lotes do Serviço Gerenciado para Apache Spark consomem Google Cloud recursos. Consulte Cotas do Dataproc sem servidor para mais informações.

Preciso configurar um servidor de histórico persistente do Serviço Gerenciado para Apache Spark?

A configuração de um servidor de histórico persistente (PHS) para uso com o Serviço Gerenciado para Apache Spark é opcional.É possível usar o PHS para visualizar eventos do Spark e outros registros em um bucket especificado do Cloud Storage até e após o período de retenção padrão de 90 dias (TTL) do bucket temporário e de preparo do Serviço Gerenciado para Apache Spark.

Quais registros do Serviço Gerenciado para Apache Spark estão disponíveis?

Os registros do driver e dos 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 do Spark ficam visíveis na interface da Web do servidor de histórico persistente (PHS) enquanto a carga de trabalho está em execução (selecione PHS > Incomplete Applications na interface do PHS).

Se você configurar um PHS do Serviço Gerenciado para Apache Spark, ele fornecerá acesso persistente aos registros de eventos do Spark salvos no Cloud Storage, que oferecem insights sobre a execução do app Spark, como eventos de 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 spark.executor.instances propriedade. 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 dois núcleos cada, ela executará 4 * 2 = 8 tarefas ao mesmo tempo. Ela também 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 executarão o mesmo número de tarefas. É possível usar a spark.executor.cores propriedade para definir o número de núcleos por executor para sua carga de trabalho do Serviço Gerenciado para Apache Spark.

Quais métricas do Spark o Serviço Gerenciado para Apache Spark usa para escalonamento automático?

O Serviço Gerenciado para Apache Spark analisa as métricas de alocação dinâmica do Spark maximum-needed e running para determinar se é necessário escalonar verticalmente ou diminuir a escala. Consulte Escalonamento automático do Serviço Gerenciado para Apache Spark.

Posso configurar o comportamento de escalonamento automático do Serviço Gerenciado para Apache Spark usando propriedades do Spark?

Sim. O escalonamento automático do Serviço Gerenciado para Apache Spark é baseado na alocação dinâmica do Spark e está 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 maneira de empacotar o código. Você transmite o arquivo JAR para o Serviço Gerenciado para Apache Spark ao enviar uma carga de trabalho.