AWS Data Pipeline non è più disponibile per i nuovi clienti. Clienti esistenti di AWS Data Pipeline possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
EmrActivity
Esegue un cluster EMR.
AWS Data Pipeline utilizza un formato diverso per i passaggi rispetto ad AmazonEMR; ad esempio, AWS Data Pipeline utilizza argomenti separati da virgole dopo il JAR nome nel campo step. EmrActivity
L'esempio seguente mostra un passaggio formattato per AmazonEMR, seguito dal suo AWS Data Pipeline equivalente:
s3://example-bucket/MyWork.jar arg1 arg2 arg3
"s3://example-bucket/MyWork.jar,arg1,arg2,arg3"
Esempi
Di seguito è illustrato un esempio di questo tipo di oggetto. Questo esempio utilizza versioni precedenti di AmazonEMR. Verifica la correttezza di questo esempio con la versione del EMR cluster Amazon che stai utilizzando.
Questo oggetto fa riferimento a tre altri oggetti definiti nello stesso file di definizione della pipeline. MyEmrCluster
è un oggetto EmrCluster
e MyS3Input
e MyS3Output
sono oggetti S3DataNode
.
Nota
In questo esempio, puoi sostituire il step
campo con la stringa di cluster desiderata, che potrebbe essere uno script Pig, un cluster di streaming Hadoop, una tua configurazione personalizzata con i JAR relativi parametri o così via.
Hadoop 2.x (3.x) AMI
{
"id" : "MyEmrActivity",
"type" : "EmrActivity",
"runsOn" : { "ref" : "MyEmrCluster" },
"preStepCommand" : "scp remoteFiles localFiles",
"step" : ["s3://mybucket/myPath/myStep.jar,firstArg,secondArg,-files,s3://mybucket/myPath/myFile.py,-input,s3://myinputbucket/path,-output,s3://myoutputbucket/path,-mapper,myFile.py,-reducer,reducerName","s3://mybucket/myPath/myotherStep.jar,..."],
"postStepCommand" : "scp localFiles remoteFiles",
"input" : { "ref" : "MyS3Input" },
"output" : { "ref" : "MyS3Output" }
}
Nota
Per passare argomenti a un'applicazione in una fase, è necessario specificare la regione nel percorso dello script, come nell'esempio seguente. Inoltre, potrebbe essere necessario uscire dagli argomenti passati. Ad esempio, se si utilizza script-runner.jar
per eseguire uno script shell e si desidera passare argomenti allo script, è necessario eliminare le virgole che li separano. Lo slot della fase che segue dimostra come eseguire questa operazione:
"step" : "s3://
eu-west-1
.elasticmapreduce/libs/script-runner/script-runner.jar,s3://datapipeline/echo.sh,a\\\\,b\\\\,c"
In questa fase viene utilizzato script-runner.jar
per eseguire lo echo.sh
script shell e passare a
, b
e c
come unico argomento allo script. Il primo carattere escape viene rimosso dall'argomento risultante in modo da poterlo utilizzare di nuovo. Ad esempio, se aveste File\.gz
come argomento un argomentoJSON, potreste evitarlo usando. File\\\\.gz
Tuttavia, poiché il primo carattere escape viene eliminato, è necessario utilizzare File\\\\\\\\.gz
.
Sintassi
Campi Object Invocation | Descrizione | Tipo di slot |
---|---|---|
schedule | Questo oggetto viene richiamato entro l'esecuzione di un intervallo di pianificazione. Specificare un riferimento alla pianificazione di un altro oggetto per impostare l'ordine di esecuzione delle dipendenze per questo oggetto. È possibile soddisfare questo requisito impostando esplicitamente una pianificazione sull'oggetto, ad esempio, specificando "schedule": {"ref":
"DefaultSchedule"} . Nella maggior parte dei casi, è meglio inserire il riferimento alla pianificazione nell'oggetto pipeline di default, in modo che tutti gli oggetti possano ereditare tale pianificazione. O, se la pipeline consiste di una struttura di pianificazioni (nidificate all'interno della pianificazione principale), è possibile creare un oggetto padre che dispone di un riferimento alla pianificazione. Per ulteriori informazioni sulle configurazioni di pianificazione opzionali di esempio, consulta https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html |
Oggetto di riferimento, ad esempio «schedule»: {"ref»:» myScheduleId «} |
Gruppo richiesto (uno dei seguenti è obbligatorio) | Descrizione | Tipo di slot |
---|---|---|
runsOn | Il EMR cluster Amazon su cui verrà eseguito questo processo. | Oggetto di riferimento, ad esempio "runsOn«: {" ref»:» myEmrCluster Id "} |
workerGroup | Il gruppo di lavoro. Utilizzato per le attività di routing. Se si fornisce un valore runsOn ed esiste workerGroup , workerGroup verrà ignorato. |
Stringa |
Campi opzionali | Descrizione | Tipo di slot |
---|---|---|
attemptStatus | Lo stato segnalato più di recente dall'attività remota. | Stringa |
attemptTimeout | Timeout per il completamento del lavoro in remoto. Se questo campo è impostato, un'attività remota che non viene completata entro il tempo impostato di avvio viene tentata di nuovo. | Periodo |
dependsOn | Specifica una dipendenza su un altro oggetto eseguibile. | Oggetto di riferimento, ad esempio "dependsOn«: {" ref»:» myActivityId «} |
failureAndRerunModo | Descrive il comportamento del nodo consumer quando le dipendenze presentano un errore o vengono di nuovo eseguite. | Enumerazione |
input | Posizione dei dati di input. | Oggetto di riferimento, ad esempio, «input»: {"ref»:» myDataNode Id "} |
lateAfterTimeout | Il tempo trascorso dall'inizio della pipeline entro il quale l'oggetto deve essere completato. Viene attivato solo quando il tipo di pianificazione non è impostato su. ondemand |
Periodo |
maxActiveInstances | Il numero massimo di istanze attive simultanee di un componente. Le riesecuzioni non contano ai fini del numero di istanze attive. | Numero intero |
maximumRetries | Numero massimo di tentativi in caso di errore. | Numero intero |
onFail | Un'azione da eseguire quando l'oggetto corrente ha esito negativo. | Oggetto di riferimento, ad esempio "onFail«: {" ref»:» myActionId «} |
onLateAction | Azioni che devono essere attivate se un oggetto non è stato ancora pianificato o non è ancora completo. | Oggetto di riferimento, ad esempio "onLateAction«: {" ref»:» myActionId «} |
onSuccess | Un'operazione da eseguire quando l'oggetto corrente ha esito positivo. | Oggetto di riferimento, ad esempio "onSuccess«: {" ref»:» myActionId «} |
output | Posizione dei dati di output. | Oggetto di riferimento, ad esempio «output»: {"ref»:» myDataNode Id "} |
parent | Padre dell'oggetto corrente da cui saranno ereditati gli slot. | Oggetto di riferimento, ad esempio «parent»: {"ref»:» myBaseObject Id "} |
pipelineLogUri | Amazon S3URI, ad esempio 's3://BucketName/Prefix/ 'per caricare i log per la pipeline. | Stringa |
postStepCommand | Script di shell da eseguire dopo il completamento di tutti i passaggi. Per specificare più script, fino a 255, aggiungere più campi postStepCommand . |
Stringa |
precondizione | Definisce eventualmente una precondizione. Un nodo di dati non è contrassegnato con "" READY finché non sono soddisfatte tutte le condizioni preliminari. | Oggetto di riferimento, ad esempio «precondition»: {"ref»:» myPreconditionId «} |
preStepCommand | Script di shell da eseguire prima dell'esecuzione di qualsiasi passaggio. Per specificare più script, fino a 255, aggiungere più campi preStepCommand . |
Stringa |
reportProgressTimeout | Timeout per chiamate successive di attività in remoto a reportProgress . Se impostato, le attività in remoto che non presentano avanzamenti nel periodo specificato potrebbero essere considerate bloccate e sono quindi oggetto di un altro tentativo. |
Periodo |
resizeClusterBeforeIn esecuzione |
Ridimensiona il cluster prima di eseguire questa attività per adattarlo alle tabelle DynamoDB specificate come input o output. NotaSe |
Booleano |
resizeClusterMaxIstanze | Un limite per il numero massimo di istanze che possono essere richieste dall'algoritmo di ridimensionamento. | Numero intero |
retryDelay | La durata del timeout tra due tentativi. | Periodo |
scheduleType | Il tipo di pianificazione consente di specificare se gli oggetti nella definizione di pipeline devono essere programmati all'inizio o alla fine dell'intervallo. I valori sono cron , ondemand e timeseries . La pianificazione timeseries significa che le istanze sono programmate al termine di ogni intervallo. La pianificazione cron significa che le istanze sono programmate all'inizio di ogni intervallo. Una pianificazione ondemand consente di eseguire una pipeline una sola volta, per attivazione. Non è necessario clonare o ricreare la pipeline per eseguirla di nuovo. Se utilizzi una pianificazione ondemand , devi specificarlo nell'oggetto predefinito e deve essere l'unico scheduleType specificato per gli oggetti della pipeline. Per utilizzare le pipeline ondemand , chiama l'operazione ActivatePipeline per ogni esecuzione successiva. |
Enumerazione |
fase | Uno o più passaggi per il cluster da eseguire. Per specificare più passaggi, fino a 255, aggiungere più campi relativi a queste informazioni. Utilizzate argomenti separati da virgole dopo il JAR nome, ad esempio "». s3://example-bucket/MyWork.jar,arg1,arg2,arg3 |
Stringa |
Campi Runtime | Descrizione | Tipo di slot |
---|---|---|
@activeInstances | Elenco di oggetti di istanze attive attualmente programmate. | Oggetto di riferimento, ad esempio "activeInstances«: {" ref»:» myRunnableObject Id "} |
@actualEndTime | L'ora in cui è terminata l'esecuzione di questo oggetto. | DateTime |
@actualStartTime | L'ora in cui è stata avviata l'esecuzione di questo oggetto. | DateTime |
cancellationReason | Il cancellationReason se questo oggetto è stato annullato. | Stringa |
@cascadeFailedOn | Descrizione della catena di dipendenza che ha generato l'errore dell'oggetto. | Oggetto di riferimento, ad esempio "cascadeFailedOn«: {" ref»:» myRunnableObject Id "} |
emrStepLog | I log dei EMR passaggi di Amazon sono disponibili solo in caso di tentativi di EMR attività | Stringa |
errorId | errorId se l'oggetto non riuscito. |
Stringa |
errorMessage | errorMessage se l'oggetto non riuscito. |
Stringa |
errorStackTrace | Traccia dello stack di errore se l'oggetto non è riuscito. | Stringa |
@finishedTime | L'ora in cui è terminata l'esecuzione di questo oggetto. | DateTime |
hadoopJobLog | I log di lavoro Hadoop sono disponibili per i tentativi di attività basate su di esse. EMR | Stringa |
@healthStatus | Lo stato di integrità dell'oggetto che riflette l'esito positivo o negativo dell'ultima istanza dell'oggetto che ha raggiunto lo stato di un'istanza terminata. | Stringa |
@healthStatusFromInstanceId | Id dell'ultimo oggetto dell'istanza che ha raggiunto lo stato terminato. | Stringa |
@ Ora healthStatusUpdated | L'ora in cui lo stato di integrità è stato aggiornato l'ultima volta. | DateTime |
hostname | Il nome host del client che si è aggiudicato il tentativo dell'attività. | Stringa |
@lastDeactivatedTime | L'ora in cui l'oggetto è stato disattivato. | DateTime |
@ latestCompletedRun Ora | L'orario dell'esecuzione più recente durante il quale l'esecuzione è stata completata. | DateTime |
@latestRunTime | L'orario dell'esecuzione più recente durante il quale l'esecuzione è stata pianificata. | DateTime |
@nextRunTime | L'orario dell'esecuzione da programmare come successiva. | DateTime |
reportProgressTime | Il periodo di tempo più recente in cui l'attività remota ha segnalato un progresso. | DateTime |
@scheduledEndTime | L'orario di termine della pianificazione per l'oggetto. | DateTime |
@scheduledStartTime | L'orario di inizio della pianificazione per l'oggetto. | DateTime |
@status | Lo stato di questo oggetto. | Stringa |
@version | Versione della pipeline con cui l'oggetto è stato creato. | Stringa |
@waitingOn | Descrizione dell'elenco di dipendenze per cui questo oggetto è in attesa. | Oggetto di riferimento, ad esempio "waitingOn«: {" ref»:» myRunnableObject Id "} |
Campi di sistema | Descrizione | Tipo di slot |
---|---|---|
@error | Errore che descrive il formato oggetto errato. | Stringa |
@pipelineId | L'ID della pipeline a cui appartiene questo oggetto. | Stringa |
@sphere | La sfera di un oggetto indica la propria posizione nel ciclo di vita: i Component Objects generano Instance Objects che eseguono Attempt Objects. | Stringa |