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 utilizza il 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 presentano determinate restrizioni e limitazioni in conformità con i requisiti di Amazon S3 e DNS. 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. È anche possibile creare e impostare autorizzazioni per un bucket Amazon S3 utilizzando l'API Amazon S3 o la 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 si abilita la registrazione per un bucket, saranno abilitati solo i log di accesso al bucket e 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 l'SDK AWS for Java. 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 include proprietà che consentono di controllare con maggiore precisione il cleanup delle parti di un caricamento in più parti.

Nella tabella seguente vengono descritte le proprietà di configurazione di Amazon EMR per il caricamento in più parti. Per la configurazione, utilizza la classificazione di configurazione core-site. Per ulteriori informazioni, consulta Configurazione delle applicazioni nella Guida ai rilasci di Amazon EMR.

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 coerente EMRFS è abilitata, i caricamenti in più parti sono abilitati per impostazione predefinita e l'impostazione di questo valore su false viene ignorata.
fs.s3n.multipart.uploads.split.size 134217728

Specifica la dimensione massima di una parte, in byte, prima che EMRFS avvii il caricamento di una nuova parte quando è abilitato il caricamento in più parti. 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 lato client di EMRFS è disattivata e il committer ottimizzato Amazon S3 è disabilitato, questo valore controlla anche la dimensione massima di un file di dati che può aumentare finché EMRFS utilizza i caricamenti in più parti, anziché una richiesta PutObject per caricare il file. Per ulteriori informazioni, consulta

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 console Amazon EMR su https://console.aws.amazon.com /emr.

  2. In EMR attivo EC2 nel riquadro di navigazione a sinistra, scegli Cluster, quindi scegli Crea cluster.

  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. Digita il comando seguente e myKey sostituiscilo 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.6.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
Disabilitazione dei caricamento in più parti con l'API

Best practice

Di seguito sono riportate le raccomandazioni 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

Per impostazione predefinita, i componenti del cluster EMR utilizzano caricamenti multiparte tramite l'SDK per AWS Java con Amazon S3 per scrivere file di log e inviare dati in uscita su Amazon APIs S3. Per ulteriori informazioni sulla modifica delle proprietà relative a questa configurazione utilizzando Amazon EMR, consulta Configurazione 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 utilizzati con Amazon EMR, utilizza una regola di configurazione del ciclo di vita in Amazon S3 per rimuovere i caricamenti in più parti 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 funzione di eliminazione in più parti di Amazon EMR impostando fs.s3.multipart.clean.enabled su true e l'ottimizzazione di altri parametri di eliminazione. 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. L'eliminazione multiparte di Amazon EMR consente un controllo più preciso. Per ulteriori informazioni, consulta Configurazione del caricamento in più parti per Amazon S3.

Gestione dei contrassegni di versione

Consigliamo di abilitare una regola di configurazione del ciclo di vita in Amazon S3 per rimuovere i contrassegni di eliminazione dell'oggetto scaduto per i bucket con versione utilizzati 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 sia previsto alcun costo per questi contrassegni di eliminazione, la loro rimozione può migliorare le prestazioni delle richieste di 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 cluster EMR e delle applicazioni su di essi possono portare a un elevato numero di richieste contro una bucket. Per maggiori informazioni, consulta Considerazioni sulla percentuale di richieste e sulle prestazioni nella Guida per l'utente di Amazon Simple Storage Service.