Iniciar o servidor de histórico do Spark - AWS Glue

Iniciar o servidor de histórico do Spark

É possível usar um servidor de histórico do Spark para visualizar os logs do Spark em sua própria infraestrutura. Você pode ver as mesmas visualizações no console do AWS Glue para execuções de trabalhos do AWS Glue no AWS Glue 4.0 ou versões posteriores com logs gerados no formato padrão (em vez de legado). Para ter mais informações, consulte Monitorar trabalhos usando a interface do usuário da Web do Apache Spark.

Você pode iniciar o servidor de histórico do Spark usando um modelo do AWS CloudFormation que hospeda o servidor em uma instância do EC2 ou executar localmente usando o Docker.

Iniciar o servidor de histórico do Spark e visualizar a interface do usuário do Spark usando o AWS CloudFormation

Você pode usar um modelo do AWS CloudFormation para iniciar o servidor de histórico do Apache Spark e visualizar a interface do usuário Web do Spark. Esses modelos são exemplos que você deve modificar para atender aos seus requisitos.

Como iniciar o servidor de histórico do Spark e visualizar a interface do usuário do Spark usando o AWS CloudFormation
  1. Escolha um dos botões Launch Stack (Iniciar pilha) na tabela a seguir. Isso inicia a pilha no console do AWS CloudFormation.

    Região Executar
    Leste dos EUA (Ohio)
    Leste dos EUA (N. da Virgínia)
    Oeste dos EUA (N. da Califórnia)
    Oeste dos EUA (Oregon)
    África (Cidade do Cabo)
    Ásia-Pacífico (Hong Kong)
    Ásia-Pacífico (Mumbai)
    Ásia-Pacífico (Osaka)
    Ásia-Pacífico (Seul)
    Ásia-Pacífico (Singapura)
    Ásia-Pacífico (Sydney)
    Ásia-Pacífico (Tóquio)
    Canadá (Central)
    Europa (Frankfurt)
    Europa (Irlanda)
    Europa (Londres)
    Europa (Milão)
    Europa (Paris)
    Europa (Estocolmo)
    Oriente Médio (Bahrein)
    South America (São Paulo)
  2. Na página Specify template (Especificar modelo), escolha Next (Próximo).

  3. Na página Specify stack details (Especificar detalhes da pilha), insira o Stack name (Nome da pilha). Insira informações adicionais em Parameters (Parâmetros).

    1. Configuração da interface do usuário do Spark

      Forneça as informações a seguir:

      • IP address range (Intervalo de endereços IP): o intervalo de endereços IP que pode ser usado para visualizar a interface do usuário do Spark. Se você deseja restringir o acesso de um intervalo de endereços IP específico, use um valor personalizado.

      • History server port (Porta do servidor de histórico): a porta da interface do usuário do Spark. Você pode usar o valor padrão.

      • Event log directory (Diretório de logs de evento): escolha o local onde os logs de eventos do Spark são armazenados nos endpoints de trabalho ou de desenvolvimento do AWS Glue. Você deve usar s3a:// para o esquema de caminho dos logs de eventos.

      • Spark package location (Local do pacote do Spark): você pode usar o valor padrão.

      • Keystore path (Caminho do repositório de chaves): o caminho do repositório de chaves SSL/TLS para HTTPS. Se você quiser usar um arquivo de armazenamento de chaves personalizado, especifique o caminho do S3 s3://path_to_your_keystore_file aqui. Se você deixar esse parâmetro vazio, um armazenamento de chaves baseado em certificado autoassinado será gerado e usado.

      • Keystore password (Senha do repositório de chaves): insira uma senha do repositório de chaves SSL/TLS para HTTPS.

    2. Configuração de instância do EC2

      Forneça as informações a seguir:

      • Instance type (Tipo de instância): o tipo de instância do Amazon EC2 que hospeda o servidor de histórico do Spark. Como esse modelo inicia a instância do Amazon EC2 em sua conta, o custo do Amazon EC2 será cobrado em sua conta separadamente.

      • Latest AMI ID (ID da AMI mais recente): o ID da AMI do Amazon Linux 2 para a instância do servidor de histórico do Spark. Você pode usar o valor padrão.

      • VPC ID (ID da VPC): o ID da nuvem privada virtual (VPC) da instância do servidor de histórico do Spark. Você pode usar qualquer uma das VPCs disponíveis em sua conta. Não é recomendado usar uma VPC padrão com uma Network ACL padrão. Para obter mais informações, consulte VPC padrão e sub-redes padrão e Criar uma VPC no Manual do usuário da Amazon VPC.

      • Subnet ID (ID da sub-rede): o ID da instância do servidor de histórico do Spark. Você pode usar qualquer uma das sub-redes em sua VPC. Você deve ser capaz de acessar a rede do seu cliente para a sub-rede. Se quiser acessar pela Internet, você deverá usar uma sub-rede pública que tenha o gateway da Internet na tabela de rotas.

    3. Escolha Próximo.

  4. Na página Configure stack options (Configurar opções de pilha), para usar as credenciais do usuário atual para determinar como o CloudFormation pode criar, modificar ou excluir recursos na pilha, escolha Next (Próximo). Você também pode especificar um perfil na seção Permissões para usar em vez das permissões do usuário atual e, em seguida, escolher Próximo.

  5. Na página Review (Revisar), revise o modelo.

    Selecione Reconheço que o AWS CloudFormation pode criar recursos do IAM e escolha Criar pilha.

  6. Aguarde até que a pilha seja criada.

  7. Abra a guia Outputs (Saídas).

    1. Copie o URL de SparkUiPublicUrl se você estiver usando uma sub-rede pública.

    2. Copie o URL de SparkUiPrivateUrl se você estiver usando uma sub-rede privada.

  8. Abra um navegador da Web e cole o URL. Isso permite que você acesse o servidor usando HTTPS na porta especificada. É possível que seu navegador não reconheça o certificado do servidor. Se isso acontecer, substitua a proteção e prossiga.

Iniciar o servidor de histórico do Spark e visualizar a interface do usuário do Spark usando o Docker

Se você preferir acesso local (não ter uma instância do EC2 para o servidor de histórico do Apache Spark), também poderá usar o Docker para iniciar o servidor de histórico do Apache Spark e visualizar a interface do usuário do Spark localmente. Este Dockerfile é um exemplo que você deve modificar para atender aos seus requisitos.

Pré-requisitos

Para obter informações sobre como instalar o Docker em seu laptop, consulte a Comunidade do Docker Engine.

Como iniciar o servidor de histórico do Spark e visualizar a interface do usuário do Spark localmente usando o Docker
  1. Faça download de arquivos do GitHub.

    Baixe o Dockerfile e o pom.xml dos exemplos de código do AWS Glue.

  2. Determine se você deseja usar suas credenciais de usuário ou credenciais de usuário federado para acessar AWS.

  3. Determine a localização do diretório do log de eventos, a ser usado no comando docker run.

  4. Crie a imagem do Docker usando os arquivos no diretório local, usando o nome glue/sparkui e a marcação latest.

    $ docker build -t glue/sparkui:latest .
  5. Crie e inicie o contêiner do Docker.

    Nos comandos a seguir, use os valores obtidos anteriormente nas etapas 2 e 3.

    1. Para criar o contêiner do Docker usando suas credenciais de usuário, use um comando semelhante ao seguinte

      docker run -itd -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=s3a://path_to_eventlog -Dspark.hadoop.fs.s3a.access.key=AWS_ACCESS_KEY_ID -Dspark.hadoop.fs.s3a.secret.key=AWS_SECRET_ACCESS_KEY" -p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
    2. Para criar o contêiner do Docker usando credenciais temporárias, use org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider como provedor, e forneça os valores de credenciais obtidos na etapa 2. Para obter mais informações, consulte Uso de credenciais de sessão com TemporaryAWSCredentialsProvider na documentação Hadoop: Integração com a Amazon Web Services.

      docker run -itd -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=s3a://path_to_eventlog -Dspark.hadoop.fs.s3a.access.key=AWS_ACCESS_KEY_ID -Dspark.hadoop.fs.s3a.secret.key=AWS_SECRET_ACCESS_KEY -Dspark.hadoop.fs.s3a.session.token=AWS_SESSION_TOKEN -Dspark.hadoop.fs.s3a.aws.credentials.provider=org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" -p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
    nota

    Esses parâmetros de configuração vêm do Módulo Hadoop-AWS. Talvez seja necessário adicionar uma configuração específica com base em seu caso de uso. Por exemplo: usuários em regiões isoladas precisarão configurar o spark.hadoop.fs.s3a.endpoint.

  6. Abra http://localhost:18080 no navegador para visualizar a interface do usuário do Spark localmente.