EmrActivity - AWS Data Pipeline

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

EmrActivity

Führt einen EMR-Cluster.

AWS Data Pipeline verwendet ein anderes Format für Schritte als Amazon EMR; AWS Data Pipeline verwendet beispielsweise kommagetrennte Argumente nach dem JAR-Namen im EmrActivity Schrittfeld. Das folgende Beispiel zeigt einen für Amazon EMR formatierten Schritt, gefolgt von seinem AWS Data Pipeline Äquivalent:

s3://example-bucket/MyWork.jar arg1 arg2 arg3
"s3://example-bucket/MyWork.jar,arg1,arg2,arg3"

Beispiele

Es folgt ein Beispiel für diesen Objekttyp. In diesem Beispiel werden ältere Versionen von Amazon EMR verwendet. Überprüfen Sie die Richtigkeit dieses Beispiels anhand der Version des Amazon EMR-Clusters, die Sie verwenden.

Dieses Objekt verweist auf drei andere Objekte, die Sie in derselben Pipeline-Definitionsdatei definieren. MyEmrCluster ist ein EmrCluster-Objekt und MyS3Input und MyS3Output sind S3DataNode-Objekte.

Anmerkung

In diesem Beispiel können Sie das Feld step mit der gewünschten Cluster-Zeichenfolge ersetzen. Hierbei kann es sich u. a. um ein Pig-Skript, ein Hadoop-Streaming-Cluster oder Ihre eigene benutzerdefinierte JAR-Datei mit ihren Parametern handeln.

Hadoop 2.x (AMI 3.x)

{ "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" } }
Anmerkung

Um in einem Schritt Argumente an eine Anwendung zu übergeben, müssen Sie die Region im Pfad des Skripts angeben, wie im folgenden Beispiel gezeigt: Darüber hinaus müssen Sie für die zu übergebenden Argumente möglicherweise ein Escape-Zeichen verwenden. Wenn Sie beispielsweise mit script-runner.jar ein Shell-Skript ausführen und Argumente an das Skript übergeben möchten, müssen Sie für die Kommas, die als Trennzeichen dienen, Escape-Zeichen verwenden. Der folgende Schritt-Slot veranschaulicht die entsprechende Vorgehensweise:

"step" : "s3://eu-west-1.elasticmapreduce/libs/script-runner/script-runner.jar,s3://datapipeline/echo.sh,a\\\\,b\\\\,c"

Dieser Schritt verwendet script-runner.jar, um das Shell-Skript echo.sh auszuführen, und übergibt a, b und c als einzelne Argumente an das Skript. Die erste Escape-Zeichen wird vom resultierenden Argument entfernt, weshalb Sie möglicherweise erneut ein Escape-Zeichen verwenden müssen. Wenn Sie beispielsweise File\.gz als Argument in JSON verwendet haben, können Sie als Escape-Zeichen File\\\\.gz verwenden. Da das erste Escape-Zeichen jedoch verworfen wird, müssen Sie File\\\\\\\\.gz verwenden.

Syntax

Objektaufruf-Felder Beschreibung Slot-Typ
schedule Dieses Objekt wird innerhalb der Ausführung eines Zeitplanintervalls aufgerufen. Sie müssen einen Zeitplanverweis auf ein anderes Objekt angeben, um die Abhängigkeitsausführungsreihenfolge für dieses Objekt festzulegen. Sie können diese Anforderung erfüllen, indem Sie explizit einen Zeitplan für das Objekt festlegen, indem sie beispielsweise "schedule": {"ref": "DefaultSchedule"} angeben. In den meisten Fällen ist es besser, den Zeitplanverweis auf das Standard-Pipeline-Objekt zu setzen, damit alle Objekte diesen Zeitplan erben. Wenn die Pipeline über einen Baum mit Zeitplänen verfügt (Zeitpläne innerhalb des Hauptplans), können Sie ein übergeordnetes Objekt mit Zeitplänenreferenz erstellen. Weitere Informationen zu optionalen Beispiel-Zeitplankonfigurationen finden Sie unter https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html. Referenzobjekt, zum Beispiel „schedule“: {"ref“:“ myScheduleId „}

Erforderliche Gruppe (mindestens eine der folgenden ist erforderlich) Beschreibung Slot-Typ
runsOn Der Amazon EMR-Cluster, auf dem dieser Job ausgeführt wird. Referenzobjekt, zum Beispiel „runsOn“: {"ref“:“ myEmrCluster Id "}
workerGroup Die Auftragnehmergruppe. Dies wird für Routing-Aufgaben verwendet. Wenn Sie einen runsOn-Wert angeben und workerGroup vorhanden ist, wird ignoriert.workerGroup String

Optionale Felder Beschreibung Slot-Typ
attemptStatus Zuletzt gemeldeter Status von der Remote-Aktivität. String
attemptTimeout Timeout für die Remote-Arbeit abgeschlossen. Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegten Startzeit abgeschlossen wird, wiederholt werden. Intervall
dependsOn Angeben der Abhängigkeit von einem anderen ausführbaren Objekt. Referenzobjekt, zum Beispiel „dependSon“: {"ref“:“ myActivityId „}
failureAndRerunModus Beschreibt das Verhalten des Konsumentenknotens, wenn Abhängigkeiten fehlschlagen oder erneut ausgeführt werden. Aufzählung
input Der Speicherort der Eingabedaten. Referenzobjekt, zum Beispiel „input“: {"ref“:“ myDataNode Id "}
lateAfterTimeout Die verstrichene Zeit nach dem Start der Pipeline, innerhalb derer das Objekt abgeschlossen werden muss. Sie wird nur ausgelöst, wenn der Zeitplantyp nicht auf eingestellt ist. ondemand Intervall
maxActiveInstances Die maximale Anzahl gleichzeitiger aktiver Instances einer Komponente. Wiederholungen zählen nicht zur Anzahl der aktiven Instances. Ganzzahl
maximumRetries Die maximale Anzahl von Versuchen bei Ausfällen. Ganzzahl
onFail Eine Aktion, die ausgeführt werden soll, wenn das aktuelle Objekt fehlschlägt. Referenzobjekt, zum Beispiel „onFail“: {"ref“:“ myActionId „}
onLateAction Aktionen, die ausgelöst werden sollen, wenn ein Objekt noch nicht geplant oder noch nicht abgeschlossen wurde. Referenzobjekt, zum Beispiel "onLateAction„: {" ref“:“ myActionId „}
onSuccess Eine Aktion, die ausgeführt wird, wenn das aktuelle Objekt erfolgreich ist. Referenzobjekt, zum Beispiel „onSuccess“: {"ref“:“ myActionId „}
output Der Speicherort der Ausgabedaten. Referenzobjekt, zum Beispiel „output“: {"ref“:“ myDataNode Id "}
übergeordneter Das übergeordnetes Objekt des aktuellen Objekts, aus dem Slots übernommen werden. Referenzobjekt, zum Beispiel „parent“: {"ref“:“ myBaseObject Id "}
pipelineLogUri Die Amazon S3 S3-URI, z. B. 's3://BucketName/Prefix/ 'für das Hochladen von Protokollen für die Pipeline. String
postStepCommand Shell-Skripts, die nach Abschluss aller Schritte ausgeführt werden. Wenn Sie mehrere Skripts angeben möchten (maximal 255), fügen Sie die entsprechende Anzahl von postStepCommand-Feldern hinzu. String
precondition Legen Sie optional eine Vorbedingung fest. Ein Datenknoten ist solange nicht als "BEREIT" markiert, bis alle Vorbedingungen erfüllt sind. Referenzobjekt, zum Beispiel „precondition“: {"ref“:“ „} myPreconditionId
preStepCommand Shell-Skripts, die vor allen Schritten ausgeführt werden. Wenn Sie mehrere Skripts angeben möchten (maximal 255), fügen Sie die entsprechende Anzahl von preStepCommand-Feldern hinzu. String
reportProgressTimeout Das Timeout für aufeinanderfolgende Aufrufe von reportProgress durch Remote-Arbeit. Wenn diese Option aktiviert ist, werden Remote-Aktivitäten, die den Fortschritt für den angegebenen Zeitraum nicht melden, als fehlgeschlagen angesehen und es wird erneut versucht. Intervall
resizeClusterBeforeWird ausgeführt

Ändern Sie die Größe des Clusters, bevor Sie diese Aktivität ausführen, um DynamoDB-Tabellen aufzunehmen, die als Eingaben oder Ausgaben angegeben sind.

Anmerkung

Wenn Sie EmrActivity a entweder DynamoDBDataNode als Eingabe- oder Ausgabedatenknoten verwenden und den Wert auf setzenTRUE, AWS Data Pipeline beginnen Sie mit der resizeClusterBeforeRunning Verwendung von m3.xlarge Instance-Typen. Dadurch wird Ihre Auswahl an Instance-Typen mit m3.xlarge überschrieben, wodurch Ihre monatlichen Kosten ansteigen könnten.

Boolesch
resizeClusterMaxInstanzen Ein Limit für die maximale Anzahl von Instances, die vom Resize-Algorithmus angefordert werden können. Ganzzahl
retryDelay Die Zeitüberschreitungsdauer zwischen zwei Wiederholungsversuchen. Intervall
scheduleType Mit dem Zeitplantyp können Sie angeben, ob die Objekte in Ihrer Pipeline-Definition am Anfang des Intervalls oder am Ende des Intervalls geplant werden sollen. Werte sind cron, ondemand und timeseries. Die timeseries-Planung bedeutet, dass Instances am Ende jedes Intervalls geplant sind. Die cron-Planung bedeutet, dass Instances am Anfang jedes Intervalls geplant sind. Ein ondemand-Zeitplan ermöglicht es Ihnen, eine Pipeline einmal pro Aktivierung auszuführen. Sie müssen die Pipeline nicht klonen oder neu erstellen, um sie erneut auszuführen. Wenn Sie einen ondemand-Zeitplan verwenden, muss er im Standardobjekt angegeben werden und der einzige für die Objekte in der Pipeline angegebene scheduleType sein. Um ondemand-Pipelines zu verwenden, rufen Sie einfach den ActivatePipeline-Vorgang für jeden nachfolgenden Lauf auf. Aufzählung
Schritt Einzelne oder mehrere vom Cluster auszuführende Schritte. Wenn Sie mehrere Schritte angeben möchten (maximal 255), fügen Sie die entsprechende Anzahl von step-Feldern hinzu. Verwenden Sie durch Komma getrennte Argumente nach dem JAR-Namen, z. B. "s3://example-bucket/MyWork.jar,arg1,arg2,arg3". String

Laufzeitfelder Beschreibung Slot-Typ
@activeInstances Liste der aktuell geplanten aktiven Instance-Objekte. Referenzobjekt, z. B. „activeInstances“: {"ref“:“ myRunnableObject Id "}
@actualEndTime Zeitpunkt, zu dem die Ausführung dieses Objekts abgeschlossen wurde. DateTime
@actualStartTime Zeitpunkt, zu dem die Ausführung dieses Objekts gestartet wurde. DateTime
cancellationReason Die cancellationReason, wenn dieses Objekt storniert wurde. String
@cascadeFailedOn Beschreibung der Abhängigkeitskette, bei der das Objekt fehlgeschlagen ist. Referenzobjekt, zum Beispiel "cascadeFailedOn„: {" ref“:“ myRunnableObject Id "}
emrStepLog Amazon EMR-Schrittprotokolle sind nur bei EMR-Aktivitätsversuchen verfügbar String
errorId Die errorId, wenn dieses Objekt fehlgeschlagen ist. String
errorMessage Die errorMessage, wenn dieses Objekt fehlgeschlagen ist. String
errorStackTrace Die Fehler-Stack-Ablaufverfolgung., wenn dieses Objekt fehlgeschlagen ist. String
@finishedTime Der Zeitpunkt, zu der dieses Objekt seine Ausführung beendet hat. DateTime
hadoopJobLog Hadoop-Jobprotokolle für Versuche für EMR-basierte Aktivitäten verfügbar. String
@healthStatus Der Integritätsstatus des Objekts, der Erfolg oder Misserfolg der letzten Objekt-Instance widerspiegelt, die einen beendeten Zustand erreicht hat. String
@healthStatusFromInstanceId Id des Objekts der letzten Instance, das einen beendeten Zustand erreicht hat. String
@ Zeit healthStatusUpdated Zeitpunkt, zu dem der Servicestatus beim letzten Mal aktualisiert wurde. DateTime
hostname Der Hostname des Clients, der den Aufgabenversuch aufnimmt. String
@lastDeactivatedTime Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviert wurde. DateTime
@ latestCompletedRun Zeit Zeitpunkt des letzten Laufs, für den die Ausführung abgeschlossen wurde. DateTime
@latestRunTime Zeitpunkt des letzten Laufs, für den die Ausführung geplant war. DateTime
@nextRunTime Zeitpunkt des Laufs, der als nächstes geplant werden soll DateTime
reportProgressTime Der letzte Zeitpunkt, an dem die Remote-Aktivität einen Fortschritt gemeldet hat. DateTime
@scheduledEndTime Endzeit für das Objekt einplanen. DateTime
@scheduledStartTime Startzeit für das Objekt einplanen. DateTime
@Status Der Status des Objekts. String
@Version Pipeline-Version, mit der das Objekt erstellt wurde String
@waitingOn Beschreibung der Liste der Abhängigkeiten, auf die dieses Objekt wartet. Referenzobjekt, zum Beispiel „WaitingOn“: {"ref“:“ myRunnableObject Id "}

Systemfelder Beschreibung Slot-Typ
@error Fehler mit einer Beschreibung des falsch formatierten Objekts. String
@pipelineId ID der Pipeline, zu der dieses Objekt gehört. String
@sphere Die Kugel eines Objekts bezeichnet seinen Platz im Lebenszyklus: Komponentenobjekte ergeben Instance-Objekte, die Versuchsobjekte ausführen. String

Weitere Informationen finden Sie unter: