Por que não consigo visualizar os eventos ou logs de histórico do Apache Spark na interface web do Spark no Amazon EMR?

4 minuto de leitura
0

Não consigo visualizar os eventos ou logs de histórico do Apache Spark na interface web do Spark no Amazon EMR.

Breve descrição

Você pode visualizar o Servidor de Histórico do Spark no Amazon EMR usando o seguinte:

  • Acesso fora do cluster às interfaces de usuário de aplicativos persistentes (a partir do EMR 5.25.0).
  • Interfaces de usuário de aplicativos em cluster, configurando um proxy da web por meio de uma conexão SSH.

Resolução

Não consigo visualizar meus eventos de histórico do Spark usando o Servidor de Histórico do Spark ou a interface de usuário persistentes fora do cluster

Os eventos persistentes do Servidor de Histórico do Spark não estão acessíveis em clusters do EMR que têm o seguinte:

  • Vários nós principais.
  • Clusters do EMR integrados com o AWS Lake Formation.
  • O diretório padrão foi alterado do HDFS para um sistema de arquivos diferente, como o Amazon Simple Storage Service (Amazon S3).

Para obter mais informações, consulte View persistent application user interfaces - Considerations and limitations (Visualizar interfaces de usuário de aplicativos persistentes - Considerações e limitações).

Observação: o Servidor de Histórico do Spark persistente não é adequado para testes de carga ou para visualização de milhares de aplicativos do Spark em execução em paralelo. Para o teste de carga ou para visualizar vários aplicativos, use o Servidor de Histórico do Spark no cluster.

Não consigo visualizar meus eventos de histórico do Spark usando o Servidor de Histórico do Spark ou a interface do usuário no cluster

Os eventos do Servidor de Histórico do Spark no cluster não poderão ser acessados se você salvar os eventos do Spark em um bucket do S3 nas versões do Amazon EMR anteriores a 6.3* e 5.30. O Servidor de Histórico do Spark nessas versões do Amazon EMR não tem o arquivo JAR emrfs-hadoop-assembly necessário para acessar os buckets do S3. Sem esse arquivo JAR, você vê o seguinte erro ao tentar acessar os eventos do Servidor de Histórico do Spark:

INFO FsHistoryProvider: History server ui acls disabled; users with admin permissions: ; groups with admin permissions
Exception in thread "main" java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.amazon.ws.emr.hadoop.fs.EmrFileSystem not found

Para evitar esse erro, use a seguinte configuração de cluster. Essa configuração adiciona o arquivo JAR emrfs-hadoop-assembly necessário ao classpath do Servidor de Histórico do Spark.

[
  {
    "classification": "spark-defaults",
    "configurations": [],
    "properties": {
      "spark.eventLog.dir": "s3://<yourbucket>/",
      "spark.history.fs.logDirectory": "s3://<yourbucket>/"
    }
  },
  {
    "classification": "spark-env",
    "configurations": [
      {
        "classification": "export",
        "properties": {
          "SPARK_DAEMON_CLASSPATH": "$(ls /usr/share/aws/emr/emrfs/lib/emrfs-hadoop-assembly-*)"
        }
      }
    ],
    "properties": {}
  }
]

Nas versões do EMR 6.x (até 6.3), definir o diretório de log de eventos do Spark como S3 durante a inicialização do cluster sem o emrfs-hadoop-assembly causa o encerramento do cluster. Fazer alterações após a execução do cluster pode fazer com que as alterações de configuração sejam revertidas.

Observação: essa solução alternativa não é necessária para versões do Amazon EMR posteriores a 6.3 e 5.30 porque o arquivo JAR necessário é adicionado por padrão à pasta /usr/lib/spark/jars/.

Lembre-se de que o Servidor de Histórico do Spark não mostra os aplicativos na lista incompleta de aplicativos quando os eventos do Spark são gravados no S3. Além disso, se o contexto do Spark for fechado incorretamente, os logs de eventos não serão carregados corretamente para o S3.

Não consigo visualizar os eventos de histórico do Spark para meu cluster que está em uma sub-rede privada

Se você usa uma sub-rede privada para seu cluster, certifique-se de que a política de endpoint do Amazon Virtual Private Cloud (Amazon VPC) para a sub-rede privada esteja correta. A política de endpoint da VPC deve incluir arn:aws:s3: ::prod.MyRegion.appinfo.src/* na lista de recursos do S3. Para obter mais informações, consulte Minimum Amazon S3 policy for private subnet (Política mínima do Amazon S3 para sub-rede privada).

Estou recebendo a mensagem de erro “NET:ERR_CERT_COMMON_NAME_INVALID” depois de ativar a criptografia em trânsito na interface do usuário do Spark

Esse erro é causado por um problema de validação do certificado do navegador. Se você estiver usando o Mozilla Firefox, verá uma opção para aceitar o risco e continuar usando o certificado. No Google Chrome, insira thisisunsafe na página de aviso para que o Chrome ignore a validação do certificado.


AWS OFICIAL
AWS OFICIALAtualizada há um ano