Conceitos básicos do operador do Spark para o Amazon EMR no EKS - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Conceitos básicos do operador do Spark para o Amazon EMR no EKS

Este tópico ajuda você a começar a usar o operador do Spark no Amazon EKS ao implantar uma aplicação do Spark e uma aplicação programada do Spark.

Instalação do operador do Spark

Use as etapas apresentadas a seguir para instalar o operador do Kubernetes para Apache Spark.

  1. Caso ainda não tenha feito, conclua as etapas em Configuração do operador do Spark para o Amazon EMR no EKS.

  2. Autentique seu cliente Helm no registro do Amazon ECR. No comando apresentado a seguir, substitua os valores de region-id pela Região da AWS de sua preferência e pelo valor ECR-registry-account correspondente para a região, estabelecido na página Contas de registro do Amazon ECR por região.

    aws ecr get-login-password \ --region region-id | helm registry login \ --username AWS \ --password-stdin ECR-registry-account.dkr.ecr.region-id.amazonaws.com
  3. Instale o operador do Spark com o comando apresentado a seguir.

    Para o parâmetro --version do chart do Helm, use o rótulo de versão do Amazon EMR com o prefixo emr- e o sufixo de data removidos. Por exemplo, com a versão emr-6.12.0-java17-latest, especifique 6.12.0-java17. O exemplo com o comando apresentado a seguir usa a versão emr-7.1.0-latest, portanto, especifica 7.1.0 para o chart do Helm --version.

    helm install spark-operator-demo \ oci://895885662937.dkr.ecr.region-id.amazonaws.com/spark-operator \ --set emrContainers.awsRegion=region-id \ --version 7.1.0 \ --namespace spark-operator \ --create-namespace

    Por padrão, o comando cria uma conta de serviço emr-containers-sa-spark-operator para o operador do Spark. Para usar uma conta de serviço diferente, forneça o argumento serviceAccounts.sparkoperator.name. Por exemplo: .

    --set serviceAccounts.sparkoperator.name my-service-account-for-spark-operator

    Para usar o escalonamento automático vertical com o operador Spark, adicione a seguinte linha ao comando de instalação para permitir webhooks para o operador:

    --set webhook.enable=true
  4. Verifique se você instalou o chart do Helm com o comando helm list:

    helm list --namespace spark-operator -o yaml

    O comando helm list deve retornar as informações da versão do chart do Helm recém-implantado:

    app_version: v1beta2-1.3.8-3.1.1 chart: spark-operator-7.1.0 name: spark-operator-demo namespace: spark-operator revision: "1" status: deployed updated: 2023-03-14 18:20:02.721638196 +0000 UTC
  5. Conclua a instalação com quaisquer opções adicionais necessárias. Para obter mais informações, consulte a spark-on-k8s-operatordocumentação em. GitHub

Execução de uma aplicação do Spark

O operador do Spark é compatível com o Amazon EMR 6.10.0 ou com versões superiores. Ao instalar o operador do Spark, ele cria a conta de serviço emr-containers-sa-spark para executar aplicações do Spark por padrão. Use as etapas apresentadas a seguir para executar uma aplicação do Spark com o operador do Spark no Amazon EMR no EKS 6.10.0 ou em versões superiores.

  1. Antes de executar uma aplicação do Spark com o operador do Spark, conclua as etapas em Configuração do operador do Spark para o Amazon EMR no EKS e Instalação do operador do Spark.

  2. Crie um arquivo de definição SparkApplication spark-pi.yaml com o seguinte conteúdo de exemplo:

    apiVersion: "sparkoperator.k8s.io/v1beta2" kind: SparkApplication metadata: name: spark-pi namespace: spark-operator spec: type: Scala mode: cluster image: "895885662937.dkr.ecr.us-west-2.amazonaws.com/spark/emr-6.10.0:latest" imagePullPolicy: Always mainClass: org.apache.spark.examples.SparkPi mainApplicationFile: "local:///usr/lib/spark/examples/jars/spark-examples.jar" sparkVersion: "3.3.1" restartPolicy: type: Never volumes: - name: "test-volume" hostPath: path: "/tmp" type: Directory driver: cores: 1 coreLimit: "1200m" memory: "512m" labels: version: 3.3.1 serviceAccount: emr-containers-sa-spark volumeMounts: - name: "test-volume" mountPath: "/tmp" executor: cores: 1 instances: 1 memory: "512m" labels: version: 3.3.1 volumeMounts: - name: "test-volume" mountPath: "/tmp"
  3. Agora, envie a aplicação do Spark com o comando apresentado a seguir. Isso também criará um objeto SparkApplication chamado spark-pi:

    kubectl apply -f spark-pi.yaml
  4. Verifique os eventos do objeto SparkApplication com o seguinte comando:

    kubectl describe sparkapplication spark-pi --namespace spark-operator

Para obter mais informações sobre como enviar inscrições para o Spark por meio do operador Spark, consulte Usando um SparkApplication na spark-on-k8s-operator documentação sobre. GitHub