Amazon S3 su Outposts con Amazon EMR su Outposts locale - Amazon S3 su Outposts

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

Amazon S3 su Outposts con Amazon EMR su Outposts locale

Amazon EMR è una piattaforma di cluster gestita che semplifica l'esecuzione di framework di Big Data, come ad esempio Apache Hadoop e Apache Spark su AWS per elaborare e analizzare grandi quantità di dati. Utilizzando questi framework e i relativi progetti open source, è possibile elaborare i dati per scopi di analisi e carichi di lavoro di business intelligence. Amazon EMR consente inoltre di trasformare e spostare grandi quantità di dati all'interno e all'esterno di altri datastore e database AWS e supporta Amazon S3 su Outposts. Per ulteriori informazioni su Amazon EMR, consulta Amazon EMR su Outposts nella Guida alla gestione di Amazon EMR.

Per Amazon S3 su Outposts, Amazon EMR ha iniziato a supportare il connettore Apache Hadoop S3A nella versione 7.0.0. Le versioni precedenti di Amazon EMR non supportano S3 su Outposts locale e il file system EMR (EMRFS) non è supportato.

Applicazioni supportate

Amazon EMR con Amazon S3 su Outposts supporta le seguenti applicazioni:

  • Hadoop

  • Spark

  • Hue

  • Hive

  • Sqoop

  • Pig

  • Hudi

  • Flink

Per ulteriori informazioni, consulta la Guida ai rilasci di Amazon EMR.

Creare e configurare un bucket Amazon S3 su Outposts

Amazon EMR utilizza AWS SDK for Java con Amazon S3 su Outposts per archiviare dati di input e dati di output. I file di log di Amazon EMR sono archiviati in una posizione Amazon S3 regionale selezionata e non sono archiviati localmente su Outpost. Per ulteriori informazioni, consulta Log di Amazon EMR nella Guida alla gestione di Amazon EMR.

Per conformarsi ai requisiti di Amazon S3 e DNS, i bucket S3 su Outposts presentano restrizioni e limitazioni di denominazione. Per ulteriori informazioni, consultare Creazione di un bucket S3 su Outposts.

Con Amazon EMR versione 7.0.0 e successive, è possibile utilizzare Amazon EMR con S3 su Outposts e il file system S3A.

Prerequisiti

Autorizzazioni di S3 su Outposts: quando si crea un profilo dell'istanza Amazon EMR, il ruolo deve contenere lo spazio dei nomi AWS Identity and Access Management (IAM) per S3 su Outposts. S3 su Outposts ha il proprio spazio dei nomi, s3-outposts*. Per una policy di esempio che utilizza questo spazio dei nomi, consulta Configurazione di IAM con S3 su Outposts.

Connettore S3A: per configurare il cluster EMR per accedere ai dati da un bucket Amazon S3 su Outposts, è necessario utilizzare il connettore Apache Hadoop S3A. Per utilizzare il connettore, assicurarsi che tutti gli URI S3 utilizzino lo schema s3a. In caso contrario, è possibile configurare l'implementazione del file system utilizzata per il cluster EMR in modo che gli URI S3 funzionino con il connettore S3A.

Per configurare l'implementazione del file system in modo che funzioni con il connettore S3A, utilizzare le proprietà di configurazione fs.file_scheme.impl e fs.AbstractFileSystem.file_scheme.impl per il cluster EMR, dove file_scheme corrisponde al tipo di URI S3 di cui si dispone. Per utilizzare il seguente esempio, sostituisci user input placeholders con le tue informazioni. Ad esempio, per modificare l'implementazione del file system per gli URI S3 che utilizzano lo schema s3, specificare le seguenti proprietà di configurazione 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 utilizzare S3A, impostare la proprietà di configurazione fs.file_scheme.impl su org.apache.hadoop.fs.s3a.S3AFileSystem e impostare la proprietà fs.AbstractFileSystem.file_scheme.impl su org.apache.hadoop.fs.s3a.S3A.

Ad esempio, se si sta accedendo al percorso s3a://bucket/..., impostare la proprietà fs.s3a.impl su org.apache.hadoop.fs.s3a.S3AFileSystem e impostate la proprietà fs.AbstractFileSystem.s3a.impl su org.apache.hadoop.fs.s3a.S3A.

Nozioni di base sull'uso di Amazon EMR con Amazon S3 su Outposts

Gli argomenti seguenti spiegano come iniziare a utilizzare Amazon EMR con Amazon S3 su Outposts.

Creazione di una policy di autorizzazione

Per poter creare un cluster EMR che utilizza Amazon S3 su Outposts, è necessario creare una policy IAM da collegare al profilo dell'istanza Amazon EC2 per il cluster. La policy deve disporre delle autorizzazioni per accedere al nome della risorsa Amazon (ARN) del punto di accesso S3 su Outposts. Per ulteriori informazioni sulla creazione di policy IAM per S3 su Outposts, consulta Configurazione di IAM con S3 su Outposts.

La policy di esempio seguente mostra come concedere le autorizzazioni richieste. 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. Per utilizzare questo comando, sostituisci user input placeholders con le tue informazioni.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:s3-outposts:us-west-2:111122223333:outpost/op-01ac5d28a6a232904/accesspoint/access-point-name, "Action": [ "s3-outposts:*" ] } ] }

Creazione e configurazione del cluster

Per creare un cluster che esegua Spark con S3 su Outposts, completare i seguenti passaggi nella console.

Per creare un cluster che esegua Spark con S3 su Outposts
  1. Apri la console di Amazon EMR all'indirizzo https://console.aws.amazon.com/elasticmapreduce/.

  2. Nel pannello di navigazione a sinistra, seleziona Cluster.

  3. Scegli Create cluster (Crea cluster).

  4. Per la versione di Amazon EMR, scegli emr-7.0.0 o versione successiva.

  5. Per il bundle di applicazioni, scegli Spark interattivo. Seleziona quindi tutte le altre applicazioni supportate che desideri includere nel cluster.

  6. Per abilitare Amazon S3 su Outposts, immettere le impostazioni di configurazione.

    Impostazioni di configurazione di esempio

    Per utilizzare le impostazioni di configurazione di esempio seguenti, sostituire user input placeholders con le proprie informazioni.

    [ { "Classification": "core-site", "Properties": { "fs.s3a.bucket.DOC-EXAMPLE-BUCKET.accesspoint.arn": "arn:aws:s3-outposts:us-west-2:111122223333:outpost/op-01ac5d28a6a232904/accesspoint/access-point-name" "fs.s3a.committer.name": "magic", "fs.s3a.select.enabled": "false" } }, { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64" } } ], "Properties": {} }, { "Classification": "spark-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64" } } ], "Properties": {} }, { "Classification": "spark-defaults", "Properties": { "spark.executorEnv.JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64", "spark.sql.sources.fastS3PartitionDiscovery.enabled": "false" } } ]
  7. Nella sezione Rete, scegli un cloud privato virtuale (VPC) e una sottorete che si trovano nel rack AWS Outposts. Per ulteriori informazioni su Amazon EMR su Outposts, consulta Cluster EMR su AWS Outposts nella Guida alla gestione di Amazon EMR.

  8. Nella sezione Profilo dell'istanza EC2 per Amazon EMR, scegli il ruolo IAM a cui è allegata la policy di autorizzazione creata in precedenza.

  9. Configura le impostazioni rimanenti del cluster, quindi scegli Crea cluster.

Panoramica delle configurazioni

La tabella seguente descrive le configurazioni S3A e i valori da specificare per i relativi parametri quando si configura un cluster che utilizza S3 su Outposts con Amazon EMR.

Parametro Valore predefinito Valore richiesto per S3 su Outposts Spiegazione

fs.s3a.aws.credentials.provider

Se non specificato, S3A cercherà S3 nel bucket Regione con il nome del bucket Outposts.

ARN del punto di accesso del bucket S3 su Outposts

Amazon S3 su Outposts supporta i punti di accesso configurati solo per i virtual private cloud (VPC) come unico mezzo per accedere ai bucket di Outposts.

fs.s3a.committer.name

file

magic

Il committer magic è l'unico committer supportato per S3 su Outposts.

fs.s3a.select.enabled

TRUE

FALSE

S3 Select non è supportato su Outposts.

JAVA_HOME

/usr/lib/jvm/java-8

/usr/lib/jvm/java-11-amazon-corretto.x86_64

S3 su Outposts su S3A richiede Java versione 11.

La tabella seguente descrive le configurazioni Spark e i valori da specificare per i relativi parametri quando si configura un cluster che utilizza S3 su Outposts con Amazon EMR.

Parametro Valore predefinito Valore richiesto per S3 su Outposts Spiegazione

spark.sql.sources.fastS3PartitionDiscovery.enabled

TRUE

FALSE

S3 su Outposts non supporta la partizione veloce.

spark.executorEnv.JAVA_HOME

/usr/lib/jvm/java-8

/usr/lib/jvm/java-11-amazon-corretto.x86_64

S3 su Outposts su S3A richiede Java versione 11.

Considerazioni

Quando si integra Amazon EMR con i bucket S3 su Outposts, tenere presente quanto segue:

  • Amazon S3 su Outposts è supportato con Amazon EMR versione 7.0.0 e successive.

  • Il connettore S3A è necessario per utilizzare S3 su Outposts con Amazon EMR. Solo S3A dispone delle funzionalità necessarie per interagire con i bucket S3 su Outposts. Per informazioni sulla configurazione del connettore S3A, consulta la sezione Prerequisiti.

  • Amazon S3 su Outposts supporta solo la crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3) con Amazon EMR. Per ulteriori informazioni, consultare Crittografia dei dati in S3 su Outposts.

  • Amazon S3 su Outposts non supporta le scritture con S3A FileOutputCommitter. Le scritture con S3A FileOutputCommitter su S3 sui bucket Outposts generano il seguente errore: InvalidStorageClass: La classe di storage specificata non è valida.

  • Amazon S3 su Outposts non è supportato con Amazon EMR serverless o Amazon EMR su EKS.

  • I log di Amazon EMR sono archiviati in una posizione Amazon S3 regionale selezionata e non sono archiviati localmente nel bucket S3 su Outposts.