Caricamento dei dati su Amazon S3 - Amazon EMR

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à.

Caricamento dei dati su Amazon S3

Per istruzioni su come caricare oggetti su Amazon S3, consulta Aggiunta di un oggetto a un bucket nella Guida per l'utente di Amazon Simple Storage Service. Per ulteriori informazioni sull'uso di Amazon S3 con Hadoop, consulta http://wiki.apache. org/hadoop/AmazonS3.

Creazione e configurazione di un bucket Amazon S3

Amazon EMR lo utilizza AWS SDK for Java con Amazon S3 per archiviare dati di input, file di log e dati di output. Amazon S3 fa riferimento a questi percorsi di archiviazione come bucket. I bucket hanno determinate restrizioni e limitazioni per essere conformi ad Amazon DNS S3 e ai requisiti. Per ulteriori informazioni, consulta Restrizioni e limitazioni dei bucket nella Guida per l'utente di Amazon Simple Storage Service.

Questa sezione mostra come utilizzare Amazon S3 per creare e quindi impostare AWS Management Console le autorizzazioni per un bucket Amazon S3. Puoi anche creare e impostare le autorizzazioni per un bucket Amazon S3 utilizzando Amazon S3 o. API AWS CLIÈ anche possibile utilizzare Curl insieme a una modifica per passare i parametri di autenticazione appropriati per Amazon S3.

Consulta le seguenti risorse:

Nota

Se abiliti la registrazione per un bucket, abilita solo i log di accesso al bucket, non i log del cluster Amazon. EMR

Durante o dopo la creazione del bucket, è possibile impostare le autorizzazioni appropriate per accedere al bucket a seconda dell'applicazione. In genere, consenti a te stesso (il proprietario) l'accesso in lettura e scrittura e il solo accesso in lettura agli utenti autenticati.

Per poter creare un cluster, sono necessari i bucket Amazon S3 richiesti. È necessario caricare in Amazon S3 tutti gli script e i dati a cui viene fatto riferimento nel cluster. Nella seguente tabella vengono descritti dati, script e ubicazioni di file di log esempio.

Configurazione del caricamento in più parti per Amazon S3

Amazon EMR supporta il caricamento multiparte di Amazon S3 tramite per Java. AWS SDK Il caricamento in più parti consente di caricare un singolo oggetto come un insieme di parti. È possibile caricare queste parti dell'oggetto in modo indipendente e in qualsiasi ordine. Se la trasmissione di una parte non riesce, è possibile ritrasmettere tale parte senza influire sulle altre. Una volta caricate tutte le parti dell'oggetto, Amazon S3 le assembla e crea l'oggetto.

Per ulteriori informazioni, consulta Panoramica del caricamento in più parti nella Guida per l'utente di Amazon Simple Storage Service.

Inoltre, Amazon EMR offre proprietà che consentono di controllare con maggiore precisione la pulizia delle parti di caricamento multipart non riuscite.

La tabella seguente descrive le proprietà di EMR configurazione di Amazon per il caricamento in più parti. Per la configurazione, utilizza la classificazione di configurazione core-site. Per ulteriori informazioni, consulta Configurare le applicazioni nella Amazon EMR Release Guide.

Nome del parametro di configurazione Valore predefinito Descrizione
fs.s3n.multipart.uploads.enabled true Un tipo booleano che indica se abilitare il caricamento in più parti. Quando la visualizzazione EMRFS coerente è abilitata, i caricamenti multiparte sono abilitati per impostazione predefinita e l'impostazione di questo valore su false viene ignorata.
fs.s3n.multipart.uploads.split.size 134217728

Specificate la dimensione massima di una parte, in byte, prima EMRFS di iniziare il caricamento di una nuova parte quando i caricamenti multiparte sono abilitati. Il valore minimo è 5242880 (5 MB). Se viene specificato un valore più basso, viene utilizzato 5242880. Il valore massimo è 5368709120 (5 GB). Se viene specificato un valore più alto, viene utilizzato 5368709120.

Se la crittografia EMRFS lato client è disabilitata e anche Amazon S3 Optimized Committer è disabilitato, questo valore controlla anche la dimensione massima che un file di dati può aumentare EMRFS fino a utilizzare caricamenti in più parti anziché PutObject una richiesta di caricamento del file. Per ulteriori informazioni, consulta la pagina

fs.s3n.ssl.enabled true Un tipo booleano che indica se utilizzare http o https.
fs.s3.buckets.create.enabled false Un tipo booleano che indica se è necessario creare un bucket in caso non esista. L'impostazione su false causa un'eccezione nelle operazioni CreateBucket.
fs.s3.multipart.clean.enabled false Un tipo booleano che indica se abilitare il cleanup periodico in background dei caricamenti in più parti incompleti.
fs.s3.multipart.clean.age.threshold 604800 Un tipo long che specifica la durata minima, in secondi, di un caricamento in più parti, prima che venga considerato idonea per il cleanup. Il valore predefinito è una settimana.
fs.s3.multipart.clean.jitter.max 10000 Un numero intero che specifica il ritardo massimo, in secondi, nel jitter casuale aggiunto al ritardo fisso di 15 minuti prima di pianificare la fase successiva di cleanup.

Disabilitazione dei caricamenti in più parti

Console
Per disabilitare i caricamenti in più parti con la console
  1. Accedi a e apri AWS Management Console la EMR console Amazon all'indirizzo https://console.aws.amazon.com/emr.

  2. EC2Nel riquadro di navigazione a sinistra, scegli Cluster, quindi scegli Crea cluster. EMR

  3. In Software Settings (Modifica delle impostazioni), inserisci la seguente configurazione: classification=core-site,properties=[fs.s3n.multipart.uploads.enabled=false].

  4. Scegli qualsiasi altra opzione applicabile al cluster.

  5. Per avviare il cluster, scegli Create cluster (Crea cluster).

CLI
Per disabilitare il caricamento in più parti utilizzando il AWS CLI

Questa procedura illustra come disabilitare il caricamento in più parti utilizzando la AWS CLI. Per disabilitare il caricamento in più parti, digitare il comando create-cluster con il parametri --bootstrap-actions.

  1. Crea un file, myConfig.json, con il seguente contenuto e salvalo nella stessa directory in cui esegui il comando:

    [ { "Classification": "core-site", "Properties": { "fs.s3n.multipart.uploads.enabled": "false" } } ]
  2. Digitate il seguente comando e sostituitelo myKey con il nome della tua EC2 key pair.

    Nota

    I caratteri di continuazione della riga Linux (\) sono inclusi per questioni di leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuovili o sostituiscili con un accento circonflesso (^).

    aws emr create-cluster --name "Test cluster" \ --release-label emr-7.3.0 --applications Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \ --instance-count 3 --configurations file://myConfig.json
API
Per disabilitare il caricamento in più parti utilizzando il API

Best practice

Di seguito sono riportati i consigli per l'utilizzo di bucket Amazon S3 con cluster. EMR

Abilita il controllo delle versioni

La funzione Versioni multiple è una configurazione consigliata per il bucket Amazon S3. Abilitando la funzione Versioni multiple, si garantisce che anche se i dati vengono eliminati o sovrascritti involontariamente, possono essere ripristinati. Per ulteriori informazioni, consulta Utilizzo del controllo delle versioni nella Guida per l'utente di Amazon Simple Storage Service.

Eliminazione dei caricamenti in più parti non riusciti

EMRper impostazione predefinita, i componenti del cluster utilizzano caricamenti multiparte tramite AWS SDK per Java con Amazon APIs S3 per scrivere file di log e inviare dati in uscita su Amazon S3. Per informazioni sulla modifica delle proprietà relative a questa configurazione con AmazonEMR, consultaConfigurazione del caricamento in più parti per Amazon S3. A volte il caricamento di un file di grandi dimensioni può risultare in un caricamento in più parti incompleto Amazon S3. Quando un caricamento in più parti non riesce a essere completato con successo, il caricamento in più parti in corso continua a occupare il bucket e comporta costi di storage. Per evitare lo storage eccessivo dei dati, consigliamo le seguenti opzioni:

  • Per i bucket che utilizzi con AmazonEMR, utilizza una regola di configurazione del ciclo di vita in Amazon S3 per rimuovere i caricamenti multiparte incompleti tre giorni dopo la data di inizio del caricamento. Le regole di configurazione del ciclo di vita consentono di controllare la classe di storage e la durata degli oggetti. Per ulteriori informazioni, consulta Gestione del ciclo di vita degli oggetti e Interruzione dei caricamenti in più parti incompleti utilizzando una policy per il ciclo di vita del bucket.

  • Abilita la funzionalità EMR di pulizia multiparte di Amazon fs.s3.multipart.clean.enabled impostando true e ottimizzando altri parametri di pulizia. Questa funzione è utile in caso di volume elevato, su larga scala e con cluster con tempi di attività limitati. In questo caso, il parametro DaysAfterIntitiation di una regola di configurazione del ciclo di vita potrebbe essere troppo lungo, anche se impostato sul valore minimo, causando picchi di archiviazione in Amazon S3. La pulizia multiparte EMR di Amazon consente un controllo più preciso. Per ulteriori informazioni, consulta Configurazione del caricamento in più parti per Amazon S3.

Gestione dei contrassegni di versione

Ti consigliamo di abilitare una regola di configurazione del ciclo di vita in Amazon S3 per rimuovere i marker di eliminazione degli oggetti scaduti per i bucket con versione che usi con Amazon. EMR Quando si elimina un oggetto in un bucket con versione, viene creato un contrassegno di eliminazione. Se tutte le versioni precedenti dell'oggetto scadono successivamente, nel bucket viene lasciato un contrassegno di eliminazione dell'oggetto scaduto. Sebbene non ti venga addebitato alcun costo per i marker di eliminazione, la rimozione dei marker scaduti può migliorare le prestazioni delle richieste. LIST Per ulteriori informazioni, consulta Configurazione del ciclo di vita per un bucket con controllo delle versioni nella Guida per l'utente di Amazon Simple Storage Service.

Best practice sulle prestazioni

A seconda dei carichi di lavoro, tipi specifici di utilizzo dei EMR cluster e delle applicazioni su tali cluster possono comportare un numero elevato di richieste verso un bucket. Per maggiori informazioni, consulta Considerazioni sulla percentuale di richieste e sulle prestazioni nella Guida per l'utente di Amazon Simple Storage Service.