

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

# Prepara i dati di input per l'elaborazione con Amazon EMR
<a name="emr-plan-input"></a>

La maggior parte dei cluster carica i dati di input e li elabora. Per caricare i dati, deve essere in una posizione alla quale il cluster possa accedere e in un formato che il cluster possa elaborare. Lo scenario più comune è quello di caricare i dati di input in Amazon S3. Amazon EMR fornisce strumenti per il cluster per importare o leggere dati da Amazon S3.

Il formato di input predefinito in Hadoop è quello dei file di testo, anche se è possibile personalizzare Hadoop e utilizzare strumenti per importare i dati memorizzati in altri formati. 

**Topics**
+ [Tipi di input che Amazon EMR può accettare](emr-plan-input-accept.md)
+ [Diversi modi per trasferire dati in Amazon EMR](emr-plan-get-data-in.md)

# Tipi di input che Amazon EMR può accettare
<a name="emr-plan-input-accept"></a>

Il formato di input predefinito per un cluster è un file di testo con ogni riga separata da un carattere di newline (\$1n), che è il formato di input più comunemente usato. 

Se i dati di input sono in un formato diverso da quello predefinito dei file di testo, è possibile utilizzare l'interfaccia di Hadoop `InputFormat` per specificare altri tipi di input. Puoi persino creare una sottoclasse della classe `FileInputFormat` per gestire i tipi di dati personalizzati. Per ulteriori informazioni, consulta [http://hadoop.apache. org/docs/current/api/org/apache/hadoop/mapred/InputFormat.html](http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/InputFormat.html). 

Se si utilizza Hive, è possibile utilizzare a serializer/deserializer (SerDe) per leggere i dati da un determinato formato in HDFS. [Per ulteriori informazioni, consulta https://cwiki.apache. org/confluence/display/Hive/SerDe](https://cwiki.apache.org/confluence/display/Hive/SerDe). 

# Diversi modi per trasferire dati in Amazon EMR
<a name="emr-plan-get-data-in"></a>

Amazon EMR fornisce diversi modi per ottenere dati su un cluster. Il modo più comune è quello di caricare i dati in Amazon S3 e utilizzare le funzionalità integrate di Amazon EMR per caricare i dati sul cluster. È inoltre possibile utilizzare la funzionalità DistributedCache di Hadoop per trasferire i file da un file system distribuito al file system locale. L'implementazione di Hive fornita da Amazon EMR (Hive versione 0.7.1.1 e successive) include funzionalità che è possibile utilizzare per importare ed esportare i dati tra DynamoDB e un cluster Amazon EMR. Se si dispone di grandi quantità di dati da elaborare, il servizio Direct Connect può essere utile. 

**Topics**
+ [Caricamento dei dati su Amazon S3](emr-plan-upload-s3.md)
+ [Carica dati con AWS DataSync](emr-plan-upload-datasync.md)
+ [Importa file con cache distribuita con Amazon EMR](emr-plan-input-distributed-cache.md)
+ [Rilevamento ed elaborazione di file compressi con Amazon EMR](HowtoProcessGzippedFiles.md)
+ [Importa dati DynamoDB in Hive con Amazon EMR](emr-plan-input-dynamodb.md)
+ [Connettiti ai dati con AWS Direct Connect Amazon EMR](emr-plan-input-directconnect.md)
+ [Carica grandi quantità di dati per Amazon EMR con AWS Snowball Edge](emr-plan-input-snowball.md)

# Caricamento dei dati su Amazon S3
<a name="emr-plan-upload-s3"></a>

Per istruzioni su come caricare oggetti su Amazon S3, consulta [ Aggiunta di un oggetto a un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PuttingAnObjectInABucket.html) 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.](http://wiki.apache.org/hadoop2/AmazonS3) 

**Topics**
+ [Creazione e configurazione di un bucket Amazon S3](#create-s3-bucket-input)
+ [Configurazione del caricamento in più parti per Amazon S3](#Config_Multipart)
+ [Best practice](#emr-bucket-bestpractices)
+ [Caricamento dei dati in Amazon S3 Express One Zone](emr-express-one-zone.md)

## Creazione e configurazione di un bucket Amazon S3
<a name="create-s3-bucket-input"></a>

Amazon EMR utilizza il AWS SDK per 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html) nella *Guida per l'utente di Amazon Simple Storage Service*.

Questa sezione mostra come utilizzare Amazon S3 per creare e quindi impostare Console di gestione AWS 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:
+ Per creare un bucket utilizzando la console, consultare [Creare un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) nella *Guida per l'utente di Amazon S3*.
+ Per creare e lavorare con i bucket utilizzando il AWS CLI, consulta [Usare i comandi S3 di alto livello con la AWS Command Line Interface](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-s3-commands.html) nella *Amazon* S3 User Guide.
+ Per creare un bucket tramite un SDK, consulta [Esempi di creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-get-location-example.html) nella *Guida per l'utente di Amazon Simple Storage Service*.
+ Per utilizzare i bucket mediante Curl, consulta [Strumento di autenticazione Amazon S3 per Curl](https://aws.amazon.com/code/amazon-s3-authentication-tool-for-curl/).
+ Per ulteriori informazioni sulla definizione di bucket specifici per Regione, consulta [Accesso a un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html#access-bucket-intro) nella *Guida per l'utente di Amazon Simple Storage Service*.
+ Per lavorare con bucket utilizzando Amazon S3 Access Points, consulta [Utilizzo di un alias in stile bucket per il punto di accesso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-alias.html) nella *Guida per l'utente di Amazon S3*. Puoi utilizzare facilmente Amazon S3 Access Points con l'alias di Access Point di Amazon S3 anziché il nome del bucket Amazon S3. Puoi utilizzare l'alias di Access Point di Amazon S3 per applicazioni esistenti e nuove, tra cui Spark, Hive, Presto e altre.

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

## Configurazione del caricamento in più parti per Amazon S3
<a name="Config_Multipart"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html) 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](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/configure-apps.html) nella *Guida ai rilasci di Amazon EMR*.


| Nome del parametro di configurazione | Valore predefinito | Description | 
| --- | --- | --- | 
| 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
<a name="emr-dev-multipart-upload"></a>

------
#### [ Console ]

**Per disabilitare i caricamenti in più parti con la console**

1. [Accedi a e apri Console di gestione AWS la console Amazon EMR su https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. In **EMR on EC2** (EMR su EC2), nel riquadro di navigazione a sinistra, scegli **Clusters** (Cluster) e seleziona **Create cluster** (Crea cluster).

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

1. Scegli qualsiasi altra opzione applicabile al cluster. 

1. 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"
       }
     }
   ]
   ```

1. Digita il comando seguente e sostituisci *myKey* con il nome della coppia di chiavi EC2.
**Nota**  
I caratteri di continuazione della riga Linux (\$1) sono inclusi per questioni di leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuovili o sostituiscili con un accento circonflesso (^).

   ```
   1. aws emr create-cluster --name "Test cluster" \
   2. --release-label emr-7.12.0 --applications Name=Hive Name=Pig \
   3. --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \
   4. --instance-count 3 --configurations file://myConfig.json
   ```

------
#### [ API ]

**Disabilitazione dei caricamento in più parti con l'API**
+ Per informazioni sull'utilizzo dei caricamenti in più parti di Amazon S3 a livello di programmazione, consulta [Utilizzo dell'SDK AWS per Java per il caricamento in più parti](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMPDotJavaAPI.html) nella *Guida per l'utente di Amazon Simple Storage Service*.

  Per ulteriori informazioni sull' AWS SDK per Java, [AWS consulta SDK](https://aws.amazon.com/sdkforjava/) for Java.

------

## Best practice
<a name="emr-bucket-bestpractices"></a>

Di seguito sono riportate le raccomandazioni per l'utilizzo di bucket Amazon S3 con cluster EMR.

### Abilita il controllo delle versioni
<a name="emr-enable-versioning"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html) nella Guida per l'utente di Amazon Simple Storage Service.

### Eliminazione dei caricamenti in più parti non riusciti
<a name="emr-multipart-cleanup"></a>

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](#Config_Multipart). 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) e [Interruzione dei caricamenti in più parti incompleti utilizzando una policy per il ciclo di vita del bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config).
+ 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](#Config_Multipart). 

### Gestione dei contrassegni di versione
<a name="w2aac28c11c17c11b7c11b9"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-bucket-with-versioning.html) nella Guida per l'utente di Amazon Simple Storage Service.

### Best practice sulle prestazioni
<a name="w2aac28c11c17c11b7c11c11"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/request-rate-perf-considerations.html) nella *Guida per l'utente di Amazon Simple Storage Service*. 

# Caricamento dei dati in Amazon S3 Express One Zone
<a name="emr-express-one-zone"></a>

## Panoramica di
<a name="emr-express-one-zone-overview"></a>

Con Amazon EMR 6.15.0 e versioni successive, puoi utilizzare Amazon EMR con Apache Spark insieme alla classe di storage [Amazon S3 Express One Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html) per migliorare le prestazioni nei tuoi processi Spark. Le versioni 7.2.0 e successive di Amazon EMR supportano HBase anche Flink e Hive, quindi puoi trarre vantaggio anche da S3 Express One Zone se utilizzi queste applicazioni. *S3 Express One Zone* è una classe di storage S3 per applicazioni che accedono frequentemente ai dati con centinaia di migliaia di richieste al secondo. Al momento del suo rilascio, S3 Express One Zone offre lo storage di oggetti cloud con la latenza più bassa e le prestazioni più elevate in Amazon S3. 

## Prerequisiti
<a name="emr-express-one-zone-prereqs"></a>
+ **Autorizzazioni S3 Express One Zone**: quando S3 Express One Zone richiama inizialmente un'operazione come `GET`, `LIST` o `PUT` su un oggetto S3, la classe di archiviazione chiama `CreateSession` per tuo conto. La policy IAM deve consentire l'autorizzazione `s3express:CreateSession`, in modo che il connettore S3A possa richiamare l'API `CreateSession`. Per un esempio di policy con questa autorizzazione, consulta [Nozioni di base su Amazon S3 Express One Zone](#emr-express-one-zone-start).
+ **Connettore S3A**: per configurare il cluster Spark per accedere ai dati da un bucket Amazon S3 che utilizza la classe di storage S3 Express One Zone, devi utilizzare il connettore Apache Hadoop S3A. Per utilizzare il connettore, assicurati che tutti gli S3 utilizzino lo schema. URIs `s3a` In caso contrario, puoi modificare l'implementazione del file system che utilizzi per gli schemi `s3` e `s3n`.

Per modificare lo schema `s3`, specifica le seguenti configurazioni del cluster: 

```
[
  {
    "Classification": "core-site",
    "Properties": {
      "fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem",
      "fs.AbstractFileSystem.s3.impl": "org.apache.hadoop.fs.s3a.S3A"
    }
  }
]
```

Per modificare lo schema `s3n`, specifica le seguenti configurazioni del cluster: 

```
[
  {
    "Classification": "core-site",
    "Properties": {
      "fs.s3n.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem",
      "fs.AbstractFileSystem.s3n.impl": "org.apache.hadoop.fs.s3a.S3A"
    }
  }
]
```

## Nozioni di base su Amazon S3 Express One Zone
<a name="emr-express-one-zone-start"></a>

**Topics**
+ [Creazione di una policy di autorizzazione](#emr-express-one-zone-permissions)
+ [Creazione e configurazione del cluster](#emr-express-one-zone-create)
+ [Panoramica delle configurazioni](#emr-express-one-zone-configs)

### Creazione di una policy di autorizzazione
<a name="emr-express-one-zone-permissions"></a>

Per poter creare un cluster che utilizza Amazon S3 Express One Zone, devi creare una policy IAM da collegare al profilo dell'istanza Amazon EC2 per il cluster. La policy deve disporre delle autorizzazioni per accedere alla classe di storage S3 Express One Zone. La policy di esempio seguente mostra come concedere l'autorizzazione richiesta. Dopo avere creato la policy, collegala al ruolo del profilo dell'istanza utilizzato per creare il cluster EMR, come descritto nella sezione [Creazione e configurazione del cluster](#emr-express-one-zone-create).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3express:*:123456789012:bucket/example-s3-bucket"
      ],
      "Action": [
        "s3express:CreateSession"
      ],
      "Sid": "AllowS3EXPRESSCreatesession"
    }
  ]
}
```

------

### Creazione e configurazione del cluster
<a name="emr-express-one-zone-create"></a>

Quindi, crea un cluster che esegua Spark HBase, Flink o Hive con S3 Express One Zone. I passaggi seguenti descrivono una panoramica di alto livello per creare un cluster nella Console di gestione AWS:

1. Accedi alla console Amazon EMR e seleziona **Cluster** dalla barra laterale. Quindi, scegli **Crea cluster**.

1. Se usi Spark, seleziona la `emr-6.15.0` versione Amazon EMR o successiva. Se usi HBase Flink o Hive, seleziona o una versione successiva. `emr-7.2.0`

1. Seleziona le applicazioni che desideri includere nel cluster, come Spark o Flink HBase.

1. Per abilitare Amazon S3 Express One Zone, inserisci una configurazione simile all'esempio seguente nella sezione **Impostazioni software**. Le configurazioni e i valori consigliati sono descritti nella sezione [Panoramica delle configurazioni](#emr-express-one-zone-configs) che segue questa procedura.

   ```
   [
     {
       "Classification": "core-site",
       "Properties": {
         "fs.s3a.aws.credentials.provider": "software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider",
         "fs.s3a.change.detection.mode": "none",
         "fs.s3a.endpoint.region": "aa-example-1",
         "fs.s3a.select.enabled": "false"
       }
     },
     {
       "Classification": "spark-defaults",
       "Properties": {
         "spark.sql.sources.fastS3PartitionDiscovery.enabled": "false"
       }
     }
   ]
   ```

1. Nella sezione **Profilo dell'istanza EC2 per Amazon EMR**, scegli di utilizzare un ruolo esistente e utilizza un ruolo con la policy collegata che hai creato nella sezione [Creazione di una policy di autorizzazione](#emr-express-one-zone-permissions) precedente.

1. Configura il resto delle impostazioni del cluster in base all'applicazione, quindi seleziona **Crea cluster**.

### Panoramica delle configurazioni
<a name="emr-express-one-zone-configs"></a>

Le tabelle seguenti descrivono le configurazioni e i valori suggeriti da specificare quando si configura un cluster che utilizza S3 Express One Zone con Amazon EMR, come descritto nella sezione [Creazione e configurazione del cluster](#emr-express-one-zone-create).

**Configurazioni S3A**


| Parametro | Valore predefinito | Valore consigliato | Spiegazione | 
| --- | --- | --- | --- | 
|  `fs.s3a.aws.credentials.provider`  |  Se non specificato, viene utilizzato `AWSCredentialProviderList` nel seguente ordine: `TemporaryAWSCredentialsProvider`, `SimpleAWSCredentialsProvider`, `EnvironmentVariableCredentialsProvider`, `IAMInstanceCredentialsProvider`.  |  <pre>software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider</pre>  |  Il ruolo del profilo dell'istanza Amazon EMR deve avere la policy che consente al filesystem S3A di chiamare `s3express:CreateSession`. Anche altri provider di credenziali funzionano se dispongono delle autorizzazioni S3 Express One Zone.  | 
|  `fs.s3a.endpoint.region`  |  null  |  Il Regione AWS luogo in cui hai creato il bucket.  |  La logica di risoluzione regionale non funziona con la classe di storage S3 Express One Zone.  | 
|  `fs.s3a.select.enabled`  |  `true`  |  `false`  |  Amazon S3 `select` non è supportato con la classe di storage S3 Express One Zone.  | 
|  `fs.s3a.change.detection.mode`  |  `server`  |  nessuno  |  Il rilevamento delle modifiche da parte di S3A funziona tramite verifica di `etags` basati su MD5. La classe di storage S3 Express One Zone non supporta i `checksums` MD5.  | 

**Configurazioni Spark**


| Parametro | Valore predefinito | Valore consigliato | Spiegazione | 
| --- | --- | --- | --- | 
|  `spark.sql.sources.fastS3PartitionDiscovery.enabled`  |  `true`  |  false  |  L'ottimizzazione interna utilizza un parametro API S3 non supportato dala classe di storage S3 Express One Zone.  | 

**Configurazioni Hive**


| Parametro | Valore predefinito | Valore consigliato | Spiegazione | 
| --- | --- | --- | --- | 
|  `hive.exec.fast.s3.partition.discovery.enabled`  |  `true`  |  false  |  L'ottimizzazione interna utilizza un parametro API S3 non supportato dala classe di storage S3 Express One Zone.  | 

## Considerazioni
<a name="emr-express-one-zone-considerations"></a>

Considera quanto segue quando integri Apache Spark su Amazon EMR con la classe di storage S3 Express One Zone:
+ Il connettore S3A è necessario per utilizzare S3 Express One Zone con Amazon EMR. Solo S3A dispone delle funzionalità e delle classi di storage necessarie per interagire con S3 Express One Zone. Per le fasi di configurazione del connettore, consulta [Prerequisiti](#emr-express-one-zone-prereqs).
+ La classe di storage Amazon S3 Express One Zone supporta SSE-S3 la crittografia. SSE-KMS Per ulteriori informazioni, consulta [Crittografia lato server con Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-data-protection.html#s3-express-ecnryption).
+ La classe di storage Amazon S3 Express One Zone non supporta le scritture con S3A `FileOutputCommitter`. Le scritture con S3A `FileOutputCommitter` su bucket S3 Express One Zone generano un errore: *InvalidStorageClass: The storage class you specified is not valid*.
+ Amazon S3 Express One Zone è supportato con le versioni 6.15.0 e successive di Amazon EMR su EC2. Inoltre, è supportato nelle versioni 7.2.0 e successive di Amazon EMR su EKS e su Amazon EMR Serverless.

# Carica dati con AWS DataSync
<a name="emr-plan-upload-datasync"></a>

AWS DataSync è un servizio di trasferimento dati online che semplifica, automatizza e accelera il processo di spostamento dei dati tra i servizi di archiviazione e archiviazione locali o tra i servizi di storage. AWS AWS DataSync supporta una varietà di sistemi di storage locali come Hadoop Distributed File System (HDFS), file server NAS e storage di oggetti autogestito.

Il modo più comune per inserire dati in un cluster è quello di caricare i dati in Amazon S3 e utilizzare le funzionalità integrate di Amazon EMR per caricare i dati sul cluster.

DataSync può aiutarti a svolgere le seguenti attività:
+ Replica HDFS sul tuo cluster Hadoop in Amazon S3 per la continuità aziendale
+ Copia HDFS in Amazon S3 per popolare i data lake
+ Trasferisci i dati tra HDFS del cluster Hadoop e Amazon S3 per l'analisi e l'elaborazione

Per caricare i dati nel tuo bucket S3, devi prima implementare uno o più DataSync agenti nella stessa rete dello storage locale. Un *agent (agente)* è una macchina virtuale (VM) utilizzata per leggere o scrivere dati in una posizione autogestita. Quindi attivi i tuoi agenti nel Account AWS e nel luogo in Regione AWS cui si trova il tuo bucket S3.

Dopo aver attivato l'agente, crei una posizione di origine per l'archiviazione on-premise, una posizione di destinazione per il bucket S3 e un processo. Un'*attività*è costituita da un set di due percorsi (origine e destinazione) e un set di opzioni predefinite che permettono di controllarne il comportamento.

Infine, esegui la tua DataSync attività per trasferire i dati dalla sorgente alla destinazione. 

Per ulteriori informazioni, consulta la pagina [Nozioni di base di AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/getting-started.html).

# Importa file con cache distribuita con Amazon EMR
<a name="emr-plan-input-distributed-cache"></a>

DistributedCache è una funzionalità Hadoop in grado di aumentare l'efficienza quando una mappa o un'attività di riduzione richiede l'accesso a dati comuni. Se il cluster dipende da applicazioni esistenti o da file binari non installati al momento della creazione del cluster, è possibile utilizzare DistributedCache per importare questi file. Questa funzione consente a un nodo del cluster di leggere i file importati dal file system locale, invece di recuperare i file da altri nodi del cluster. 

Per ulteriori informazioni, consulta [http://hadoop.apache. org/docs/stable/api/org/apache/hadoop/filecache/DistributedCache.html](http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/filecache/DistributedCache.html).

È possibile richiamare DistributedCache quando si crea il cluster. I file vengono messi in cache poco prima dell'avvio del lavoro Hadoop e rimangono in cache per tutta la durata del lavoro. È possibile mettere in cache i file archiviati su qualsiasi file system compatibile con Hadoop, ad esempio HDFS o Amazon S3. La dimensione predefinita della cache dei file è 10 GB. Per modificare la dimensione della cache, riconfigurare il parametro Hadoop, `local.cache.size` usando l'operazione di bootstrap. Per ulteriori informazioni, consulta [Crea azioni di bootstrap per installare software aggiuntivo con un cluster Amazon EMR](emr-plan-bootstrap.md).

**Topics**
+ [Tipi di file supportati](#emr-dev-supported-file-types)
+ [Percorso dei file memorizzati nella cache](#locationofcache)
+ [Accesso ai file della cache dalle applicazioni in streaming](#cachemapper)
+ [Accesso ai file della cache dalle applicazioni in streaming](#cacheinconsole)

## Tipi di file supportati
<a name="emr-dev-supported-file-types"></a>

DistributedCache consente sia singoli file che archivi. I singoli file vengono memorizzati in cache come file di sola lettura. Gli eseguibili e i file binari hanno le autorizzazioni di esecuzione impostate.

Gli archivi sono uno o più file assemblati utilizzando un'utilità, ad esempio `gzip`. DistributedCache trasferisce i file compressi in ogni nodo principale e decomprime l'archivio come parte della memorizzazione nella cache. DistributedCache supporta i seguenti formati di compressione:
+ zip
+ tgz
+ tar.gz
+ tar
+ jar

## Percorso dei file memorizzati nella cache
<a name="locationofcache"></a>

DistributedCache copia i file solo nei nodi principali. Se non sono presenti nodi principali nel cluster, DistributedCache copia i file nel nodo primario.

DistributedCache associa i file della cache alla directory di lavoro corrente del mappatore e del riduttore utilizzando collegamenti simbolici. Un collegamento simbolico è un alias a una posizione del file, non la posizione effettiva del file. Il valore del parametro, `yarn.nodemanager.local-dirs` in `yarn-site.xml`, specifica il percorso dei file temporanei. Amazon EMR imposta il parametro su `/mnt/mapred` o alcune variazioni in base al tipo di istanza e alla versione EMR. Ad esempio, un'impostazione può avere `/mnt/mapred` e `/mnt1/mapred` perché il tipo di istanza ha due volumi effimeri. I file della cache si trovano in una sottodirectory della posizione del file temporaneo in `/mnt/mapred/taskTracker/archive`. 

Se si memorizza nella cache un singolo file, DistributedCache inserisce il file nella directory `archive`. Se si memorizza nella cache un archivio, DistributedCache decomprime il file e crea una sottodirectory in `/archive` con lo stesso nome del file di archivio. I singoli file si trovano nella nuova sottodirectory.

Puoi utilizzare DistributedCache solo quando utilizzi lo streaming.

## Accesso ai file della cache dalle applicazioni in streaming
<a name="cachemapper"></a>

Per accedere ai file memorizzati nella cache dalle applicazioni mappatore o riduttore, accertati di aver aggiunto la directory di lavoro corrente (. /) nel percorso dell'applicazione e di aver fatto riferimento ai file memorizzati nella cache come se fossero presenti nella directory di lavoro corrente.

## Accesso ai file della cache dalle applicazioni in streaming
<a name="cacheinconsole"></a>

È possibile utilizzare Console di gestione AWS and the AWS CLI per creare cluster che utilizzano Distributed Cache. 

------
#### [ Console ]

**Specifica dei file della cache distribuita con la nuova console**

1. [Accedi a e apri Console di gestione AWS la console Amazon EMR su https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. In **EMR on EC2** (EMR su EC2), nel riquadro di navigazione a sinistra, scegli **Clusters** (Cluster) e seleziona **Create cluster** (Crea cluster).

1. In **Steps** (Fasi), scegli **Add step** (Aggiungi fase). Si apre la finestra di dialogo **Add step** (Aggiungi fase). Nel campo **Arguments** (Argomenti), includi i file e gli archivi da salvare nella cache. La dimensione del file (o la dimensione totale dei file in un file di archivio) deve essere inferiore alla dimensione della cache assegnata.

   Se desideri aggiungere un singolo file alla cache distribuita, specifica `-cacheFile` seguito dal nome e dalla posizione del file, dal segno cancelletto (\$1) e quindi dal nome che desideri assegnare al file quando viene collocato nella cache locale. L'esempio seguente mostra come aggiungere un singolo file alla cache distribuita.

   ```
   -cacheFile \
   s3://amzn-s3-demo-bucket/file-name#cache-file-name
   ```

   Se desideri aggiungere un file di archivio alla cache distribuita, inserisci `-cacheArchive` seguito dal percorso dei file in Amazon S3, dal segno cancelletto (\$1) e quindi dal nome che desideri assegnare alla raccolta di file nella cache locale. L'esempio seguente mostra come aggiungere un file di archivio alla cache distribuita.

   ```
   -cacheArchive \
   s3://amzn-s3-demo-bucket/archive-name#cache-archive-name
   ```

   Inserisci i valori appropriati negli altri campi di dialogo. Le opzioni variano a seconda del tipo di fase. Per aggiungere la fase e uscire dalla finestra di dialogo, scegli **Add step** (Aggiungi fase).

1. Scegli qualsiasi altra opzione applicabile al cluster. 

1. Per avviare il cluster, scegli **Create cluster** (Crea cluster).

------
#### [ CLI ]

**Per specificare i file di cache distribuiti con AWS CLI**
+ Per inviare una fase di Streaming quando un cluster è stato creato, digita il comando `create-cluster` con il parametro `--steps`. Per specificare i file di cache distribuiti utilizzando il AWS CLI, specificate gli argomenti appropriati quando inviate un passaggio di Streaming. 

  Se desideri aggiungere un singolo file alla cache distribuita, specifica `-cacheFile` seguito dal nome e dalla posizione del file, dal segno cancelletto (\$1) e quindi dal nome che desideri assegnare al file quando viene collocato nella cache locale. 

  Se desideri aggiungere un file di archivio alla cache distribuita, inserisci `-cacheArchive` seguito dal percorso dei file in Amazon S3, dal segno cancelletto (\$1) e quindi dal nome che desideri assegnare alla raccolta di file nella cache locale. L'esempio seguente mostra come aggiungere un file di archivio alla cache distribuita.

  Per ulteriori informazioni sull'utilizzo dei comandi Amazon EMR in AWS CLI, consulta. [https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)

**Example 1**  
Digita il comando seguente per avviare un cluster e invia una fase di Streaming che utilizza `-cacheFile` per aggiungere un file, `sample_dataset_cached.dat`, alla cache.   

```
aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --steps Type=STREAMING,Name="Streaming program",ActionOnFailure=CONTINUE,Args=["--files","s3://my_bucket/my_mapper.py s3://my_bucket/my_reducer.py","-mapper","my_mapper.py","-reducer","my_reducer.py,"-input","s3://my_bucket/my_input","-output","s3://my_bucket/my_output", "-cacheFile","s3://my_bucket/sample_dataset.dat#sample_dataset_cached.dat"]
```
Quando si specifica il numero di istanze senza utilizzare il parametro `--instance-groups`, viene avviato un singolo nodo primario e le istanze rimanenti vengono avviate come nodi core. Tutti i nodi utilizzeranno il tipo di istanza specificato nel comando.  
Se in precedenza non sono stati creati il ruolo di servizio EMR predefinito e il profilo dell'istanza EC2, digita `aws emr create-default-roles` per crearli prima di digitare il sottocomando `create-cluster`.

**Example 2**  
Il comando seguente mostra la creazione di un cluster di streaming e si avvale di `-cacheArchive` per aggiungere un archivio di file nella cache.   

```
aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --steps Type=STREAMING,Name="Streaming program",ActionOnFailure=CONTINUE,Args=["--files","s3://my_bucket/my_mapper.py s3://my_bucket/my_reducer.py","-mapper","my_mapper.py","-reducer","my_reducer.py,"-input","s3://my_bucket/my_input","-output","s3://my_bucket/my_output", "-cacheArchive","s3://my_bucket/sample_dataset.tgz#sample_dataset_cached"]
```
Quando si specifica il numero di istanze senza utilizzare il parametro `--instance-groups`, viene avviato un singolo nodo primario e le istanze rimanenti vengono avviate come nodi core. Tutti i nodi utilizzeranno il tipo di istanza specificato nel comando.  
Se in precedenza non sono stati creati il ruolo di servizio EMR predefinito e il profilo dell'istanza EC2, digita `aws emr create-default-roles` per crearli prima di digitare il sottocomando `create-cluster`.

------

# Rilevamento ed elaborazione di file compressi con Amazon EMR
<a name="HowtoProcessGzippedFiles"></a>

Hadoop controlla l'estensione del file per rilevare i file compressi. I tipi di compressione supportati da Hadoop sono: gzip, bzip2 e LZO. Non è necessario intraprendere alcuna azione aggiuntiva per estrarre i file utilizzando questo tipo di compressione; Hadoop lo gestisce per voi.

[Per indicizzare i file LZO, puoi usare la libreria hadoop-lzo che può essere scaricata da hadoop-lzo. https://github.com/kevinweil/](https://github.com/kevinweil/hadoop-lzo) Trattandosi di una libreria di terze parti, Amazon EMR non offre supporto agli sviluppatori su come utilizzare questo strumento. Per informazioni sull'utilizzo, consulta [il file readme di hadoop-lzo.](https://github.com/kevinweil/hadoop-lzo/blob/master/README.md) 

# Importa dati DynamoDB in Hive con Amazon EMR
<a name="emr-plan-input-dynamodb"></a>

L'implementazione di Hive fornita da Amazon EMR include funzionalità che è possibile utilizzare per importare ed esportare i dati tra DynamoDB e un cluster Amazon EMR. Questa funzione è utile se i dati di input vengono memorizzati in DynamoDB. Per ulteriori informazioni, consulta [Esportazione, importazione, esecuzione di query e unione di tabelle in DynamoDB con Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/EMRforDynamoDB.html). 

# Connettiti ai dati con AWS Direct Connect Amazon EMR
<a name="emr-plan-input-directconnect"></a>

Direct Connect è un servizio che puoi utilizzare per stabilire una connessione di rete privata dedicata ad Amazon Web Services dal tuo data center, ufficio o ambiente di colocation. Se disponi di grandi quantità di dati di input, l'utilizzo Direct Connect può ridurre i costi di rete, aumentare la velocità di trasmissione della larghezza di banda e fornire un'esperienza di rete più coerente rispetto alle connessioni basate su Internet. Per ulteriori informazioni, consulta la [Guida per l'utente Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/). 

# Carica grandi quantità di dati per Amazon EMR con AWS Snowball Edge
<a name="emr-plan-input-snowball"></a>

AWS Snowball Edge è un servizio che puoi utilizzare per trasferire grandi quantità di dati tra Amazon Simple Storage Service (Amazon S3) e la tua posizione di archiviazione dati onsite a velocità elevate. faster-than-internet Snowball Edge supporta due tipi di processi: processi di importazione ed esportazione. I processi di importazione comportano un trasferimento di dati da un'origine on-premise a un bucket Amazon S3. I processi di esportazione comportano un trasferimento di dati da bucket Amazon S3 a un'origine on-premise. Per entrambi i tipi di lavoro, i dispositivi Snowball Edge proteggono e proteggono i dati, mentre i corrieri regionali li trasportano tra Amazon S3 e la posizione di archiviazione dei dati in sede. I dispositivi Snowball Edge sono fisicamente robusti e protetti da (). AWS Key Management Service AWS KMS Per ulteriori informazioni, consulta la [Guida per gli sviluppatori di AWS Snowball Edge Edge](https://docs.aws.amazon.com/snowball/latest/developer-guide/).