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 de CPUs, em unidades de CPU, para o contêiner de log no pod do 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 a imagem
dos PullPolicy contêineres do pod remetente do trabalho. -
jobsubmitter.gracefulTermination -
Por padrão, ou quando essa configuração é definida como
false, após o pod do executor do trabalho criar o pod do driver, ele continua em execução, observa o pod do driver e registra periodicamente o status do driver durante a vida útil do trabalho. Quando essa configuração é definida comotrue, o pod do executor de tarefas termina imediatamente após iniciar o pod do driver Spark. Isso significa que o pod do executor de tarefas consome CPU e memória por menos tempo, mas os registros do executor de tarefas não estão mais disponíveis.
Recomendamos colocar pods de remetentes de trabalhos em Instâncias. On-Demand 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
StartJobRunsolicitação com posicionamento de On-Demand nós para o pod remetente do 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 chave dedicada, valor graviton_machines, efeito e uma tolerância Seconds de 60 NoExecutesegundos
dedicada, valor graviton_machines, efeito e uma tolerância Seconds de 60 NoExecutesegundos"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" } } ] }
StartJobRunsolicitação com rescisão normal ativada para o pod remetente do trabalho
"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.gracefulTermination": "true" } } ] }