Perguntas frequentes sobre o Apache Spark sem servidor

Esta página contém Perguntas frequentes sobre o Google Cloud Serverless para Apache Spark com respostas.

Quando devo usar o Serverless para Apache Spark em vez do Dataproc no Compute Engine?

  • Sem servidor para o Apache Spark:

    • Suporta cargas de trabalho em lote do Spark e sessões interativas no kernel do PySpark cadernos do Jupyter.
    • O serviço sem servidor para Apache Spark cria e gere a sua carga de trabalho e infraestrutura de sessão interativa.
  • Dataproc no Compute Engine:

    • Suporta o envio de diferentes tipos de tarefas do Spark e tarefas baseadas noutros componentes de código aberto, como Flink, Hadoop, Hive, Pig, Presto e outros.

    • Não cria nem gere infraestrutura. Cria e gere os seus clusters do Dataproc.

O que posso fazer com o Serverless para Apache Spark?

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

Pode executar cargas de trabalho em simultâneo ou sequencialmente. O seu plano de execução afeta a sua Google Cloud quota de recursos. Pode executar tantas cargas de trabalho em paralelo quanto as quotas do recurso de lote permitirem.

Posso usar uma imagem personalizada com o Serverless para Apache Spark?

Posso especificar recursos de memória e disco para cargas de trabalho do Apache Spark Serverless for Apache Spark?

Sim. Pode especificar os níveis de computação e disco do executor e do controlador premium, bem como a quantidade de recursos de computação e disco do executor e do controlador a atribuir quando envia uma carga de trabalho (consulte as propriedades de atribuição de recursos).

Como posso especificar o intervalo de endereços IP para a minha rede VPC do Serverless for Apache Spark?

Sem servidor para cargas de trabalho do Apache Spark executadas no seu ambiente. Cada controlador e executor do Spark numa carga de trabalho do Spark sem servidor consome um endereço IP interno na sua rede VPC do Serverless for Apache Spark. /16 é um intervalo de endereços CIDR especificado pelo utilizador típico para uma rede VPC do Serverless para Apache Spark. Pode limitar o intervalo de endereços IP da sua rede com base no número de cargas de trabalho simultâneas que planeia executar.

O Serverless para Apache Spark suporta a residência dos dados?

Sim. Especifica a região onde a sua carga de trabalho é processada. Localizar os conjuntos de dados de entrada e saída na região especificada.

Como é que o Serverless for Apache Spark seleciona uma zona na região especificada para executar a carga de trabalho?

O Serverless for Apache Spark seleciona a zona do Compute Engine onde executa uma carga de trabalho com base na capacidade e disponibilidade. Se uma zona ficar indisponível depois de iniciar uma carga de trabalho, a carga de trabalho falha e tem de reenviar a carga de trabalho com falhas.

Como é que as cargas de trabalho sem servidor para o Apache Spark usam recursos de computação?

Cada carga de trabalho é executada nos seus próprios recursos de computação. Vários envios em lote não partilham nem reutilizam recursos de computação.

Práticas recomendadas:

  • Otimize a sua carga de trabalho para tarefas de execução média e não para tarefas de execução curta.

  • Persistir dados aos quais vários fluxos de trabalho acedem no Cloud Storage.

Onde posso encontrar informações sobre anúncios, funcionalidades, correções de erros, problemas conhecidos e descontinuações do Serverless para Apache Spark?

Consulte as notas de lançamento do Serverless para Apache Spark.

As cargas de trabalho simultâneas competem por recursos?

O modo sem servidor para cargas de trabalho do Apache Spark só compete por recursos se a sua quota de recursos for insuficiente para executar todas as cargas de trabalho em execução em simultâneo. Caso contrário, as cargas de trabalho estão totalmente isoladas umas das outras.

Como é atribuída a quota do Serverless para Apache Spark?

Os lotes do Apache Spark sem servidor consomem Google Cloud recursos. Consulte as quotas do Dataproc sem servidor para mais informações.

Tenho de configurar um servidor de histórico persistente do Dataproc?

A configuração de um servidor de histórico persistente (PHS) para usar com o Serverless para Apache Spark é opcional.Pode usar o PHS para ver eventos do Spark e outros registos num contentor do Cloud Storage especificado até ao período de retenção (TTL) de 90 dias do contentor temporário e de preparação do Serverless para Apache Spark padrão e após este período.

Que registos do Apache Spark Serverless estão disponíveis?

Os registos do controlador 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, as aplicações Spark são visíveis na interface Web do Persistent History Server (PHS) enquanto a carga de trabalho está em execução (selecione PHS > Incomplete Applications na IU do PHS).

Se configurar um PHS do Dataproc, este fornece acesso persistente aos registos de eventos do Spark guardados no Cloud Storage, que fornecem estatísticas sobre a execução da app Spark, como eventos DAG e de executores.

Posso definir o número de executores para a minha carga de trabalho do Spark?

Sim. Pode definir o número de executores para uma carga de trabalho do Spark através da 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 1 tarefa por núcleo. Por exemplo, se uma carga de trabalho tiver quatro executores com dois núcleos cada, executa 4 * 2 = 8 tarefas em simultâneo. Também executa o mesmo número de tarefas para uma carga de trabalho que tenha dois executores com quatro núcleos cada. Uma vez que o número de núcleos para cada carga de trabalho é o mesmo, estas executam o mesmo número de tarefas. Pode usar a propriedade spark.executor.cores para definir o número de núcleos por executor para a sua carga de trabalho sem servidor para Apache Spark.

Que métricas do Spark é que o Serverless for Apache Spark usa para a escala automática?

O Serverless for Apache Spark analisa as métricas de maximum-needed e running atribuição dinâmica do Spark para determinar se deve aumentar ou diminuir a escala. Consulte o artigo Sem servidor para a escala automática do Apache Spark.

Posso configurar o comportamento de dimensionamento automático do Apache Spark sem servidor através das propriedades do Spark?

Sim. A escala automática sem servidor para o Apache Spark baseia-se na atribuição dinâmica do Spark e está ativada por predefinição. Pode ajustar as seguintes propriedades do Spark e propriedades de atribuição dinâmica do Spark:

  • spark.executor.instances
  • spark.dynamicAllocation.initialExecutors
  • spark.dynamicAllocation.minExecutors
  • spark.dynamicAllocation.maxExecutors

Por que motivo tenho de criar um pacote do meu código num ficheiro JAR para enviar a minha carga de trabalho do Spark?

O Spark é escrito em Scala, o que significa que os processos do controlador e do trabalhador funcionam como processos JVM. Nas linguagens JVM, o ficheiro JAR é a principal forma de criar pacotes de código. Transmite o ficheiro JAR para o Serverless para Apache Spark quando envia uma carga de trabalho.