View a markdown version of this page

Uso da classificação de envio de trabalho - 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á.

Uso da classificação de envio de trabalho

Visão geral do

A solicitação StartJobRun do Amazon EMR no EKS cria um pod de envio de trabalho (também conhecido como pod job-runner) para gerar o driver do Spark. Você pode usar a emr-job-submitter classificação para configurar seletores de nós, adicionar tolerâncias, personalizar o registro e fazer outras modificações no pod remetente do trabalho.

As seguintes configurações estão disponíveis na classificação emr-job-submitter:

jobsubmitter.node.selector.[selectorKey]

É adicionado ao seletor de nós do pod remetente do trabalho, com a chave selectorKey e o valor como valor de configuração. Por exemplo, você pode jobsubmitter.node.selector.identifier definir como myIdentifier e o pod remetente do trabalho terá um seletor de nós com uma chave identifier e um valor. myIdentifier Isso pode ser usado para especificar em quais nós o pod remetente do trabalho pode ser colocado. Para adicionar diversas chaves seletoras de nós, defina diversas configurações com esse prefixo.

jobsubmitter.label.[labelKey]

Adiciona aos rótulos do pod remetente do trabalho, com a chave labelKey e o valor como valor de configuração. Para adicionar vários rótulos, defina várias configurações com esse prefixo.

jobsubmitter.annotation.[annotationKey]

Adiciona às anotações do pod remetente do trabalho, com a chave annotationKey e o valor como valor de configuração. Para adicionar várias anotações, defina várias configurações com esse prefixo.

jobsubmitter.node.toleration.[tolerationKey]

Adiciona tolerâncias ao pod do remetente do trabalho. Por padrão, não há tolerâncias adicionadas ao pod. A chave da tolerância será tolerationKey e o valor da tolerância será o valor da configuração. Se o valor da configuração for definido como uma string não vazia, o operador seráEquals. Se o valor da configuração estiver definido como"", o operador seráExists.

jobsubmitter.node.toleration.[tolerationKey].[effect]

Adiciona um efeito de tolerância ao prefixotolerationKey. Esse campo é obrigatório ao adicionar tolerâncias. Os valores permitidos para o campo de efeito são NoExecuteNoSchedule, PreferNoSchedule e.

jobsubmitter.node.toleration.[tolerationKey].[tolerationSeconds]

Adiciona tolerationSeconds ao prefixo. tolerationKey Campo opcional. Aplicável somente quando o efeito éNoExecute.

jobsubmitter.scheduler.name

Define um SchedulerName personalizado para o pod remetente do trabalho.

jobsubmitter.logging

Ativa ou desativa o registro no pod remetente do trabalho. Quando isso é definido como, DISABLED o contêiner de registro é removido do pod remetente do trabalho, o que desativará qualquer registro desse pod especificado nomonitoringConfiguration, como s3MonitoringConfiguration ou. cloudWatchMonitoringConfiguration Quando essa configuração não está definida ou está definida com qualquer outro valor, o login no pod remetente do trabalho é ativado.

jobsubmitter.logging.image

Define uma imagem personalizada a ser usada para o contêiner de registro em log no pod remetente do trabalho.

jobsubmitter.logging.request.cores

Define um valor personalizado para o número CPUs, em unidades de CPU, do contêiner de registro no pod remetente do trabalho. Por padrão, ela é definida como 100m.

jobsubmitter.logging.request.memory

Define um valor personalizado para a quantidade de memória, em bytes, para o contêiner de log no pod do remetente do trabalho. Por padrão, ela é definida como 200Mi. Um mebibyte é uma unidade de medida semelhante a um megabyte.

jobsubmitter.container.image

Define uma imagem personalizada para o contêiner do pod remetente do job-runner trabalho.

jobsubmitter.container.image.pullPolicy

Define os imagePullPolicycontêineres do pod remetente do trabalho para os contêineres.

Recomendamos colocar pods de remetentes de trabalhos em instâncias sob demanda. A colocação de pods remetentes de trabalhos em instâncias spot pode resultar em uma falha no trabalho se a instância em que o pod remetente de trabalho é executado estiver sujeita a uma interrupção da instância spot. Você também pode colocar o pod remetente do trabalho em uma única zona de disponibilidade ou usar qualquer rótulo do Kubernetes aplicado aos nós.

Exemplos de classificação de envio de trabalho

Solicitação StartJobRun com nó sob demanda estabelecido para o pod de envio de trabalho

cat >spark-python-in-s3-nodeselector-job-submitter.json << EOF { "name": "spark-python-in-s3-nodeselector", "virtualClusterId": "virtual-cluster-id", "executionRoleArn": "execution-role-arn", "releaseLabel": "emr-6.11.0-latest", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "s3://S3-prefix/trip-count.py", "sparkSubmitParameters": "--conf spark.driver.cores=5 --conf spark.executor.memory=20G --conf spark.driver.memory=15G --conf spark.executor.cores=6" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "spark-defaults", "properties": { "spark.dynamicAllocation.enabled":"false" } }, { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.selector.eks.amazonaws.com/capacityType": "ON_DEMAND" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } } } EOF aws emr-containers start-job-run --cli-input-json file:///spark-python-in-s3-nodeselector-job-submitter.json

StartJobRunsolicitação com posicionamento de nó Single-AZ e posicionamento do tipo de instância Amazon EC2 para o pod remetente do trabalho

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.selector.topology.kubernetes.io/zone": "Availability Zone", "jobsubmitter.node.selector.node.kubernetes.io/instance-type":"m5.4xlarge" } } ] }

StartJobRunsolicitação com rótulos, anotações e um agendador personalizado para o pod remetente do trabalho

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.label.label1": "value1", "jobsubmitter.label.label2": "value2", "jobsubmitter.annotation.ann1": "value1", "jobsubmitter.annotation.ann2": "value2", "jobsubmitter.scheduler.name": "custom-scheduler" } } ] }

StartJobRunsolicitação com uma tolerância aplicada ao pod remetente do trabalho com chavededicated, valor graviton_machinesNoExecute, efeito e a de 60 segundos tolerationSeconds

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.toleration.dedicated":"graviton_machines", "jobsubmitter.node.toleration.dedicated.effect":"NoExecute", "jobsubmitter.node.toleration.dedicated.tolerationSeconds":"60" } } ] }

StartJobRunsolicitação com registro desativado para o pod remetente do trabalho

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.logging": "DISABLED" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } }

StartJobRunsolicitação com imagem de contêiner de registro personalizada, CPU e memória para o pod remetente do trabalho

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.logging.image": "YOUR_ECR_IMAGE_URL", "jobsubmitter.logging.request.memory": "200Mi", "jobsubmitter.logging.request.cores": "0.5" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } }

StartJobRunsolicitação com uma imagem personalizada do contêiner do remetente do trabalho e política de pull

"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.container.image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/emr6.11_custom_repo", "jobsubmitter.container.image.pullPolicy": "kubernetes pull policy" } } ] }