Risolvi i problemi più comuni durante l'utilizzo di Amazon EMR con Lake Formation AWS - 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à.

Risolvi i problemi più comuni durante l'utilizzo di Amazon EMR con Lake Formation AWS

Questa sezione descrive il processo di risoluzione dei problemi comuni relativi all'utilizzo di Amazon EMR con AWS Lake Formation.

Accesso al data lake non consentito

Prima di poter analizzare ed elaborare i dati nel data lake, devi attivare esplicitamente il filtro dei dati sui cluster Amazon EMR. Quando l'accesso ai dati ha esito negativo, verrà visualizzato un messaggio Access is not allowed generico nell'output delle voci del notebook.

Per istruzioni sull'attivazione del filtro dei dati su Amazon EMR, consulta Attivazione del filtro dei dati su Amazon EMR nella Guida per gli sviluppatori di AWS Lake Formation .

Scadenza della sessione

Il timeout della sessione per gli EMR Notebooks e Zeppelin è controllato dall'impostazione Maximum CLI/API session duration del ruolo IAM per Lake Formation. Il valore predefinito per questa impostazione è un'ora. Quando si verifica un timeout di sessione, verrà visualizzato il seguente messaggio nell'output delle voci del notebook quando si tenta di eseguire i comandi SQL Spark.

Error 401 HTTP ERROR: 401 Problem accessing /sessions/2/statements. Reason: JWT token included in request failed validation. Powered by Jetty:// 9.3.24.v20180605 org.springframework.web.client.HttpClientErrorException: 401 JWT token included in request failed validation…

Per convalidare la sessione, aggiorna la pagina. Verrà richiesto di eseguire nuovamente l'autenticazione utilizzando il provider di identità e di essere reindirizzati al notebook. Puoi continuare a eseguire query dopo la riautenticazione.

Nessuna autorizzazione per l'utente sulla tabella richiesta

Quando tenti di accedere a una tabella a cui non hai accesso, visualizzerai la seguente eccezione nell'output delle voci del notebook quando tenti di eseguire i comandi SQL Spark.

org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to fetch table table. Resource does not exist or requester is not authorized to access requested permissions. (Service: AWSGlue; Status Code: 400; Error Code: AccessDeniedException; Request ID: …

Per accedere alla tabella, devi concedere l'accesso all'utente aggiornando le autorizzazioni associate a questa tabella in Lake Formation.

Interrogazione dei dati tra account condivisi con Lake Formation

Quando utilizzi Amazon EMR per accedere ai dati condivisi con te da un altro account, alcune librerie Spark tenteranno di chiamare l'operazione API Glue:GetUserDefinedFunctions. Poiché le versioni 1 e 2 delle autorizzazioni AWS RAM gestite non supportano questa azione, ricevi il seguente messaggio di errore:

"ERROR: User: arn:aws:sts::012345678901:assumed-role/my-spark-role/i-06ab8c2b59299508a is not authorized to perform: glue:GetUserDefinedFunctions on resource: arn:exampleCatalogResource because no resource-based policy allows the glue:GetUserDefinedFunctions action"

Per risolvere questo errore, l'amministratore del data lake che ha creato la condivisione di risorse deve aggiornare le autorizzazioni AWS RAM gestite allegate alla condivisione di risorse. La versione 3 delle autorizzazioni gestite da AWS RAM consente ai responsabili di eseguire l'operazione glue:GetUserDefinedFunctions.

Se crei una nuova condivisione di risorse, Lake Formation applica la versione più recente dell'autorizzazione AWS RAM gestita per impostazione predefinita e non è richiesta alcuna azione da parte tua. Per abilitare l'accesso ai dati tra account diversi per le condivisioni di risorse esistenti, devi aggiornare le autorizzazioni AWS RAM gestite alla versione 3.

Puoi visualizzare le AWS RAM autorizzazioni assegnate alle risorse condivise con te in. AWS RAM Le autorizzazioni seguenti sono incluse nella versione 3:

Databases AWSRAMPermissionGlueDatabaseReadWriteForCatalog AWSRAMPermissionGlueDatabaseReadWrite Tables AWSRAMPermissionGlueTableReadWriteForCatalog AWSRAMPermissionGlueTableReadWriteForDatabase AllTables AWSRAMPermissionGlueAllTablesReadWriteForCatalog AWSRAMPermissionGlueAllTablesReadWriteForDatabase
Per aggiornare la versione delle autorizzazioni AWS RAM gestite delle condivisioni di risorse esistenti

L'amministratore del data lake può aggiornare le autorizzazioni AWS RAM gestite a una versione più recente seguendo le istruzioni contenute nella Guida per l'AWS RAM utente oppure revocare tutte le autorizzazioni esistenti per il tipo di risorsa e concederle nuovamente. Se revochi le autorizzazioni, AWS RAM elimina la condivisione di risorse associata al tipo di risorsa. AWS RAM Quando concedi nuovamente le autorizzazioni, AWS RAM crea nuove condivisioni di risorse allegando la versione più recente delle autorizzazioni gestite. AWS RAM

Inserimento, creazione e modifica di tabelle

L'inserimento, la creazione e la modifica di tabelle nei database protetti da policy Lake Formation non sono supportati. Quando esegui queste operazioni, visualizzerai la seguente eccezione nell'output delle voci del notebook quando tenti di eseguire i comandi SQL Spark:

java.io.IOException: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: …

Per ulteriori informazioni, consulta Limitazioni dell'integrazione di Amazon EMR con. AWS Lake Formation