Differenze tra l'utility S3DistCp e le versioni AMI di Amazon EMR precedenti
Versioni di S3DistCp supportate in Amazon EMR
Le seguenti versioni di S3DistCp sono supportati nelle versioni AMI di Amazon EMR. Le versioni di S3DistCp successive alla versione 1.0.7 sono disponibili direttamente nei cluster. Utilizza il file JAR in /home/hadoop/lib
per le caratteristiche più recenti.
Versione | Descrizione | Data di rilascio |
---|---|---|
1.0.8 | Aggiunge le opzioni --appendToLastFile , --requirePreviousManifest e --storageClass . |
3 gennaio 2014 |
1.0.7 | Aggiunge l'opzione --s3ServerSideEncryption . |
2 maggio 2013 |
1.0.6 | Aggiunge l'opzione --s3Endpoint . |
6 agosto 2012 |
1.0.5 | Migliora la possibilità di specificare quale versione di S3DistCp eseguire. | 27 giugno 2012 |
1.0.4 | Migliora l'opzione --deleteOnSuccess . |
19 giugno 2012 |
1.0.3 | Aggiunge supporto per le opzioni --numberFiles e --startingIndex . |
12 giugno 2012 |
1.0.2 | Migliora la denominazione di file quando si utilizzano gruppi. | 6 giugno 2012 |
1.0.1 | Versione iniziale di S3DistCp. | 19 gennaio 2012 |
Aggiunta di una fase di copia di S3DistCp a un cluster
Per aggiungere una fase di copia di S3DistCp a un cluster in esecuzione, digita il comando seguente, sostituisci j-3GYXXXXXX9IOK
con l'ID del cluster e sostituisci mybucket
con il nome di bucket Amazon S3.
Nota
I caratteri di continuazione della riga Linux (\) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuoverli o sostituirli con un accento circonflesso (^).
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,]+
"]
Esempio Caricamento di log Amazon CloudFront in HDFS
Questo esempio carica i log di Amazon CloudFront in HDFS aggiungendo una fase a un cluster in esecuzione. Cambia inoltre il formato di compressione da Gzip (l'impostazione predefinita in CloudFront) in LZO. Ciò è utile in quanto i dati compressi con LZO possono essere suddivisi in più mappe non appena vengono decompressi, senza quindi attendere il completamento della compressione, come avviene con Gzip. Di conseguenza, si ha un miglioramento delle prestazioni durante l'analisi dei dati con Amazon EMR. L'esempio migliora le prestazioni anche mediante l'utilizzo dell'espressione regolare specificata nell'opzione --groupBy
per combinare tutti i log di una determinata ora in un singolo file. I cluster Amazon EMR sono più efficienti quando si elaborano alcuni file voluminosi compressi con LZO anziché molti file di piccole dimensioni compressi con Gzip. Per suddividere i file LZO, è necessario indicizzarli e utilizzare la libreria di terza parte hadoop-lzo.
Per caricare i log di Amazon CloudFront in HDFS, digita il comando seguente, sostituisci j-3GYXXXXXX9IOK
con l'ID del cluster e sostituisci mybucket
con il nome di bucket Amazon S3.
Nota
I caratteri di continuazione della riga Linux (\) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuoverli o sostituirli con un accento circonflesso (^).
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
"]
Supponiamo che l'esempio precedente sia eseguito sui seguenti file di log di 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
S3DistCp copi, concatena e comprime i file nei due file seguenti, dove il nome di file è determinato dalla corrispondenza stabilita dell'espressione regolare.
hdfs:///local/2012-02-23-01.lzo hdfs:///local/2012-02-23-02.lzo