Unterschiede zwischen dem DistCp S3-Hilfsprogramm und früheren AMI-Versionen von Amazon EMR - Amazon EMR

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.

Unterschiede zwischen dem DistCp S3-Hilfsprogramm und früheren AMI-Versionen von Amazon EMR

In Amazon EMR unterstützte DistCp S3-Versionen

Die folgenden DistCp S3-Versionen werden in Amazon EMR AMI-Versionen unterstützt. DistCpS3-Versionen nach 1.0.7 befinden sich direkt auf den Clustern. Verwenden Sie die JAR-Datei in /home/hadoop/lib, um die neuesten Funktionen zu nutzen.

Version Beschreibung Datum der Veröffentlichung
1.0.8 Fügt die Optionen --appendToLastFile, --requirePreviousManifest und --storageClass hinzu. 3. Januar 2014
1.0.7 Fügt die Option --s3ServerSideEncryption hinzu. 2. Mai 2013
1.0.6 Fügt die Option --s3Endpoint hinzu. 6. August 2012
1.0.5 Verbessert die Fähigkeit, anzugeben, welche Version von S3 ausgeführt DistCp werden soll. 27. Juni 2012
1.0.4 Verbessert die Option --deleteOnSuccess. 19. Juni 2012
1.0.3 Bietet Support für die Optionen --numberFiles und --startingIndex. 12. Juni 2012
1.0.2 Verbessert die Dateibenennung bei der Verwendung von Gruppen. 6. Juni 2012
1.0.1 Erste Version von S3DistCp. 19. Januar 2012

Fügen Sie einem Cluster einen DistCp S3-Kopierschritt hinzu

Um einem laufenden Cluster einen DistCp S3-Kopierschritt hinzuzufügen, geben Sie den folgenden Befehl ein, ersetzen Sie j-3GYxxxxxx9IOK durch Ihre Cluster-ID und ersetzen Sie mybucket durch Ihren Amazon S3 S3-Bucket-Namen.

Anmerkung

Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

aws emr add-steps --cluster-id j-3GYXXXXXX9IOK \ --steps Type=CUSTOM_JAR,Name="S3DistCp step",Jar=/home/hadoop/lib/emr-s3distcp-1.0.jar,\ Args=["--s3Endpoint,s3-eu-west-1.amazonaws.com",\ "--src,s3://mybucket/logs/j-3GYXXXXXX9IOJ/node/",\ "--dest,hdfs:///output",\ "--srcPattern,.*[a-zA-Z,]+"]
Beispiel CloudFront Amazon-Protokolle in HDFS laden

In diesem Beispiel werden CloudFront Amazon-Protokolle in HDFS geladen, indem einem laufenden Cluster ein Schritt hinzugefügt wird. Dabei wird das Komprimierungsformat von Gzip ( CloudFrontStandard) auf LZO geändert. Dies ist nützlich, da die mit LZO komprimierten Daten während der Dekomprimierung in mehrere Maps aufgeteilt werden können, sodass Sie nicht wie bei Gzip warten müssen, bis die Komprimierung abgeschlossen ist. Diese Vorgehensweise bietet eine bessere Leistung, wenn Sie die Daten mit Amazon EMR analysieren. Dieses Beispiel verbessert außerdem die Leistung, indem der in der Option --groupBy angegebene reguläre Ausdruck verwendet wird, um alle Protokolle für eine bestimmte Stunde in einer einzigen Datei zu kombinieren. Amazon-EMR-Cluster sind effizienter, wenn nur wenige große LZO-komprimierte Dateien verarbeitet werden anstelle von vielen kleinen mit Gzip komprimierten Dateien. Um LZO-Dateien aufzuteilen, müssen Sie sie indizieren und die Hadoop-lzo-Drittanbieterbibliothek verwenden.

Um CloudFront Amazon-Protokolle in HDFS zu laden, geben Sie den folgenden Befehl ein, ersetzen Sie j-3GYxxxxxx9IOK durch Ihre Cluster-ID und ersetzen Sie mybucket durch Ihren Amazon S3-Bucket-Namen.

Anmerkung

Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

aws emr add-steps --cluster-id j-3GYXXXXXX9IOK \ --steps Type=CUSTOM_JAR,Name="S3DistCp step",Jar=/home/hadoop/lib/emr-s3distcp-1.0.jar,\ Args=["--src,s3://mybucket/cf","--dest,hdfs:///local",\ "--groupBy,.*XABCD12345678.([0-9]+-[0-9]+-[0-9]+-[0-9]+).*",\ "--targetSize,128", "--outputCodec,lzo","--deleteOnSuccess"]

Stellen Sie sich den Fall vor, in dem das vorherige Beispiel über die folgenden Protokolldateien ausgeführt wird. CloudFront

s3://DOC-EXAMPLE-BUCKET1/cf/XABCD12345678.2012-02-23-01.HLUS3JKx.gz s3://DOC-EXAMPLE-BUCKET1/cf/XABCD12345678.2012-02-23-01.I9CNAZrg.gz s3://DOC-EXAMPLE-BUCKET1/cf/XABCD12345678.2012-02-23-02.YRRwERSA.gz s3://DOC-EXAMPLE-BUCKET1/cf/XABCD12345678.2012-02-23-02.dshVLXFE.gz s3://DOC-EXAMPLE-BUCKET1/cf/XABCD12345678.2012-02-23-02.LpLfuShd.gz

S3 DistCp kopiert, verkettet und komprimiert die Dateien in die folgenden beiden Dateien, wobei der Dateiname durch die Übereinstimmung mit dem regulären Ausdruck bestimmt wird.

hdfs:///local/2012-02-23-01.lzo hdfs:///local/2012-02-23-02.lzo