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
selectorKeye o valor como valor de configuração. Por exemplo, você podejobsubmitter.node.selector.identifierdefinir comomyIdentifiere o pod remetente do trabalho terá um seletor de nós com uma chaveidentifiere um valor.myIdentifierIsso 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
labelKeye 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
annotationKeye 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á tolerationKeye 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 prefixo
tolerationKey. Esse campo é obrigatório ao adicionar tolerâncias. Os valores permitidos para o campo de efeito sãoNoExecuteNoSchedule,PreferNoSchedulee. -
jobsubmitter.node.toleration.[tolerationKey].[tolerationSeconds] -
Adiciona tolerationSeconds ao prefixo.
tolerationKeyCampo 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,
DISABLEDo contêiner de registro é removido do pod remetente do trabalho, o que desativará qualquer registro desse pod especificado nomonitoringConfiguration, comos3MonitoringConfigurationou.cloudWatchMonitoringConfigurationQuando 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-runnertrabalho. -
jobsubmitter.container.image.pullPolicy -
Define os imagePullPolicy
contê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
Nesta seção
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" } } ] }