Monitorando o Apache Spark

O sensor do Apache Spark é automaticamente implementado e instalado após a instalação do agente do Instana.

Informações de suporte

Para garantir que o sensor Apache Spark seja compatível com a sua configuração atual, consulte as seguintes seções de informações de suporte:

Versões compatíveis e política de suporte

O sensor é compatível com as versões do Spark de 1.4.x a 3.5.x.

A tabela a seguir mostra a versão mais recente compatível e a política de suporte:

Tecnologia Política de suporte Versão com tecnologia de ponta Versão mais recente suportada
Aplicativo Apache Spark Sob demanda 3.5.4 3.5.4
Apache Spark independente Sob demanda 3.5.4 3.5.4

Para obter mais informações sobre a política de suporte, consulte a estratégia de suporte para sensores.

Configuração

O agente monitora a aplicação Spark de forma nativa, e a configuração é opcional.

Configurando a frequência de sondagem

Observação: Instana Apache Spark sensor 1.1.11 ou posterior e Apache Spark Standalone sensor 1.1.4 ou posterior oferecem suporte à configuração da taxa de sondagem para reduzir a ingestão de dados. Esse recurso é compatível com o backend 311 e versões posteriores do Instana em servidor próprio.

Frequência de sondagem personalizada para o aplicativo Spark

Você pode definir a frequência com que o Instana consulta o Apache Spark para coletar dados e métricas usando o poll_rate parâmetro no arquivo configuration.yaml do agente, conforme mostrado no exemplo a seguir:

com.instana.plugin.sparkapplication:
  poll_rate: 1 # values are in seconds. Default value is 1 second.

Taxa de sondagem personalizada para o Spark Standalone

Você pode definir a frequência com que o Instana consulta o Apache Spark para coletar dados e métricas usando o poll_rate parâmetro no arquivo configuration.yaml do agente, conforme mostrado no exemplo a seguir:

com.instana.plugin.sparkstandalone:
  poll_rate: 1 # values are in seconds. Default value is 1 second.

Sensor (coleta de dados)

Aplicativo Spark

Os dois componentes principais de um aplicativo Spark são o processo do driver e os processos do executor. Os processos do executor contêm dados relevantes somente para a execução de tarefa. O Driver é o processo principal e é responsável por coordenar a execução de um aplicativo Spark. Portanto, ele contém todos os dados sobre o desempenho e a execução do aplicativo Spark e também inclui dados sobre cada executor do aplicativo Spark

A Instana coleta todos os dados do aplicativo Spark (incluindo dados do executor) da JVM do driver. Para monitorar aplicações Spark, é necessário instalar o agente Instana no host em que o driver do Spark JVM está em execução.

Observe que há duas maneiras de enviar aplicativos do Spark para o gerenciador do cluster: Dependendo de como essa opção é configurada, o local no qual a JVM do driver está em execução pode mudar.

  • Cluster em modo de implantação: ao enviar com a opção --deploy-mode cluster, por exemplo ./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn --deploy-mode cluster /path/to/app.jar, o driver do Spark JVM está em execução em um dos nós de trabalho do seu gerenciador de cluster. Se o agente Instana for instalado em nós do trabalhador, o aplicativo Spark (driver) será descoberto automaticamente
  • Cliente no modo de implantação: Ao enviar com a opção --deploy-mode client, ou sem a opção --deploy-mode (o valor padrão é client), por exemplo ./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn --deploy-mode client /path/to/app.jar ou ./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn /path/to/app.jar, o driver do Spark JVM está em execução no host no qual este comando é executado. Para que o Instana possa monitorar esta aplicação Spark, o agente Instana deve estar instalado no host onde o comando `submit` do Spark é executado.

Dependendo do tipo do aplicativo Spark monitorado pela Instana, diferentes dados são coletados:

Aplicativos em lote

  • Tarefas
  • Estágios
  • Estágios mais longos concluídos
  • Executores

Aplicativos de fluxo

  • Utilizando Batch
  • Atraso de planejamento
  • Atraso total
  • Tempo de processamento
  • Operações de Saída
  • Registros de entrada
  • Receptores
  • Executores

Aplicativo Spark no AWS EMR

A Instana detecta e monitora aplicativos Spark por meio do driver do Spark, portanto, para obter visibilidade dos aplicativos Spark, instale o agente nas instâncias do EC2 em seu cluster EMR. Ao implantar aplicativos Spark a partir do nó primário e utilizando o modo de clientimplantação, basta instalar o agente apenas no nó primário do cluster EMR.

Se você não quiser copiar o arquivo JAR do aplicativo Spark para o nó principal e desejar implantar o aplicativo Spark com cluster o modo a partir de outro local, por exemplo, de um bucket do S3, será necessário instalar o agente em todos os nós do cluster EMR. Isso ocorre porque o driver está planejado no nó do trabalhador

O melhor método é criar o cluster EMR e, na configuração avançada, selecionar a imagem AMI personalizada que contém o agente do Instana instalado. Para obter mais informações sobre como iniciar o cluster EMR com a AMI personalizada, consulte a documentação em AWS. Para criar a imagem AMI com o agente do Instana instalado, consulte a documentação em AWS. Quando for solicitado que você acesse via SSH a instância do EC2 para instalar o software, use o comando de uma linha que se encontra na página de configurações do Instana, que pode ser aberta clicando em “Configurações” na barra lateral da interface do usuário do Instana. Para obter mais informações, consulte Instalação do agente de host no Amazon Elastic Compute Cloud (Amazon EC2 ). Dessa forma, você obtém informações sobre todos os nós do cluster do EMR, pode monitorar aplicações Spark independentemente do modo de implantação e obtém informações sobre todos os componentes subjacentes do EMR, como o ` Hadoop YARN `. Se você deseja medir apenas as métricas do Amazon Hadoop YARN, consulte a documentação sobre o monitoramento do Amazon ElasticMapReduce (EMR).

Gerenciador de cluster independente do Spark

Além de rodar nos gerenciadores de cluster YARN, o Spark também oferece um modo de implantação autônomo simples. O Spark Standalone é um gerenciador de cluster composto por nós primários e nós de trabalho. Instana monitora todo o cluster autônomo do Spark por meio do nó primário do cluster. Ele coleta dados de todo o cluster e dados para cada nó do trabalhador de um cluster

Configuração rastreada

  • Host
  • Porta
  • URI de REST
  • Versão
  • Status

Métrica

  • Trabalhadores ativos
  • Trabalhadores inativos
  • Trabalhadores desatribuídos
  • Trabalhadores em estado desconhecido
  • Memória usada
  • Total de memória
  • Núcleos usados
  • Total de núcleos
  • Dados e métricas por trabalhador
  • Apps mais recentes
  • Drivers mais recentes