Gerenciamento de execuções de trabalhos com a AWS CLI - Amazon EMR

Gerenciamento de execuções de trabalhos com a AWS CLI

Este tópico aborda como gerenciar execuções de trabalhos com a AWS Command Line Interface (AWS CLI). São detalhadas as propriedades, como parâmetros de segurança, o driver e várias configurações de substituição. Também inclui subtópicos que abrangem várias maneiras de configurar o registro em log.

Opções para a configuração de uma execução de trabalho

Use as seguintes opções para configurar os parâmetros de execução de trabalho:

  • --execution-role-arn: você deve fornecer um perfil do IAM que é usado para a execução de trabalhos. Para ter mais informações, consulte Uso de perfis de execução de trabalho com o Amazon EMR no EKS.

  • --release-label: você pode implantar o Amazon EMR no EKS com as versões 5.32.0 e 6.2.0 e posteriores do Amazon EMR. O Amazon EMR no EKS não é compatível com as versões anteriores do Amazon EMR. Para ter mais informações, consulte Versões do Amazon EMR no EKS.

  • --job-driver: o driver de trabalho usado para fornecer entradas sobre o trabalho principal. Este é um campo do tipo união no qual você só pode transferir um dos valores para o tipo de trabalho que deseja executar. Os tipos de trabalho com suporte incluem:

    • Trabalhos do Spark-submit: usados ​​para executar um comando por meio do spark-submit. Você pode usar este tipo de trabalho para executar o Scala, o PySpark, o Spark R, o Spark SQL e quaisquer outros trabalhos com suporte por meio do spark-submit. Esse tipo de trabalho tem os seguintes parâmetros:

      • Entrypoint: esta é a referência do HCFS (sistema de arquivos compatível com Hadoop) para o arquivo principal em JAR/PY que você deseja executar.

      • EntryPointArguments: esta é uma matriz de argumentos que você deseja transferir para seu arquivo principal em JAR/PY. Você deve realizar a leitura desses parâmetros usando seu código de Entrypoint. Cada argumento na matriz deve ser separado por uma vírgula. Os argumentos do EntryPointArguments não podem conter colchetes ou parênteses, como (), {} ou [].

      • SparkSubmitParameters: esses são os parâmetros adicionais do Spark que você deseja enviar para o trabalho. Use este parâmetro para substituir as propriedades padrão do Spark, como a memória do driver ou o número de executores, como —conf ou —class. Para obter informações adicionais, consulte Launching Applications with spark-submit.

    • Trabalhos do Spark SQL: usados ​​para executar um arquivo de consulta SQL por meio do Spark SQL. Você pode usar esse tipo de trabalho para executar trabalhos do Spark SQL. Esse tipo de trabalho tem os seguintes parâmetros:

      • Entrypoint: esta é a referência do HCFS (sistema de arquivos compatível com Hadoop) para o arquivo de consulta SQL que você deseja executar.

        Para obter uma lista de parâmetros adicionais do Spark que você pode usar para um trabalho do Spark SQL, consulte Execução de scripts do Spark SQL por meio da API StartJobRun.

  • --configuration-overrides: você pode substituir as configurações padrão para as aplicações ao fornecer um objeto de configuração. Você pode usar uma sintaxe abreviada para fornecer a configuração ou fazer referência ao objeto de configuração em um arquivo JSON. Os objetos de configuração consistem em uma classificação, propriedades e configurações opcionais aninhadas As propriedades consistem nas configurações que você deseja substituir neste arquivo. Você pode especificar várias classificações para diversas aplicações em um único objeto JSON. As classificações de configuração disponíveis variam de acordo com a versão do Amazon EMR. Para obter uma lista das classificações de configuração disponíveis para cada versão de liberação do Amazon EMR, consulte Versões do Amazon EMR no EKS.

    Se você transferir a mesma configuração em uma substituição de aplicação e nos parâmetros do spark-submit, os parâmetros do spark-submit terão precedência. A lista completa de prioridades de configuração é apresentada a seguir, na ordem da prioridade mais alta para a prioridade mais baixa.

    • Configuração fornecida ao criar SparkSession.

    • Configuração fornecida como parte do sparkSubmitParameters usando —conf.

    • Configuração fornecida como parte das substituições de aplicações.

    • Configurações otimizadas escolhidas pelo Amazon EMR para a versão.

    • Configurações padrão de código aberto para a aplicação.

    Para monitorar as execuções de trabalhos usando o Amazon CloudWatch ou o Amazon S3, você deve fornecer os detalhes de configuração do CloudWatch. Para ter mais informações, consulte Configuração de uma execução de trabalho para usar logs do Amazon S3 e Configuração de uma execução de trabalho para usar o Amazon CloudWatch Logs. Se o bucket do S3 ou o grupo de logs do CloudWatch não existir, o Amazon EMR realizará a criação antes de fazer o upload dos logs para o bucket.

  • Para obter uma lista adicional de opções de configuração do Kubernetes, consulte Spark Properties on Kubernetes.

    As configurações do Spark apresentadas a seguir não têm suporte.

    • spark.kubernetes.authenticate.driver.serviceAccountName

    • spark.kubernetes.authenticate.executor.serviceAccountName

    • spark.kubernetes.namespace

    • spark.kubernetes.driver.pod.name

    • spark.kubernetes.container.image.pullPolicy

    • spark.kubernetes.container.image

      nota

      Você pode usar spark.kubernetes.container.image para imagens do Docker personalizadas. Para ter mais informações, consulte Personalização de imagens do Docker para o Amazon EMR no EKS.

Listagem de execuções de trabalhos

Você pode executar list-job-run para mostrar os estados das execuções de trabalhos, como demonstra o exemplo a seguir.

aws emr-containers list-job-runs --virtual-cluster-id <cluster-id>

Descrição de uma execução de trabalho

Você pode executar describe-job-run para obter mais detalhes sobre o trabalho, como o estado do trabalho, os detalhes do estado e o nome do trabalho, como demonstra o exemplo a seguir.

aws emr-containers describe-job-run --virtual-cluster-id cluster-id --id job-run-id

Cancelamento de uma execução de trabalho

Você pode executar cancel-job-run para cancelar trabalhos em execução, como demonstra o exemplo a seguir.

aws emr-containers cancel-job-run --virtual-cluster-id cluster-id --id job-run-id