Pour quelle raison est-ce que je reçois le message d'erreur suivant : «le jeton fourni est incorrect ou non valide» , lorsque je lance un cluster Amazon EMR en utilisant Hive et Presto dans la région AWS Chine (Beijing) ?

Dernière mise à jour : 19/09/2022

J'ai lancé un cluster Amazon EMR dans la région AWS Chine (Beijing) (cn-north-1). J'ai utilisé Presto et Apache Hive pour créer une table externe à partir d'un compartiment Amazon Simple Storage Service (Amazon S3). Quand j'interroge la table en utilisant Hive et Presto, j'obtiens une erreur similaire à celle-ci :

presto:default> sélectionner* depuis mes données ;
Requête 20200912_072348_00009_qqx96, ÉCHOUÉ, 1 nœud
Séparations : 1 au total, 0 effectuées (0,00 %)
0:03 [0 lignes, 0B] [0 lignes/s, 0B/s]
La requête 20200912_072348_00009_qqx96 a échoué : le jeton fourni est incorrect ou non valide. (Service : Amazon S3 ; code de statut : 400 ; code d'erreur : InvalidToken ; ID de demande : 811359ED1D9F8250)

Brève description

Dans les anciennes versions d'Amazon EMR, Presto n'utilise pas automatiquement la région dans laquelle se trouve le compartiment S3. Utilisez l'une des options suivantes pour résoudre l'erreur :

  • Effectuez une mise à niveau vers Amazon EMR version 5.12.0 ou ultérieure.
  • Quant à l'utilisation d'Amazon EMR version 5.11.x ou antérieure, définissez la propriété hive.s3.pin-client-to-current-region sur true.

Solution

Mise à niveau vers Amazon EMR version 5.12.0 ou ultérieure

Lancez un nouveau cluster et choisissez Amazon EMR version 5.12.0 ou ultérieure. Pour plus d'informations, consultez À propos des versions d'Amazon EMR.

Définissez la propriété hive.s3.pin-client-to-current-region sur true (version 5.11.x ou antérieure)

1.    Sur chaque nœud, ouvrez le fichier hive.properties, puis affectez à la propriété hive.s3.pin-client-to-current-region la valeur true. Exemple :

sudo vim /etc/presto/conf/catalog/hive.properties
hive.s3.connect-timeout=2m
hive.s3.max-backoff-time=10m
...
hive.s3.pin-client-to-current-region=true

2.    Redémarrez Presto sur chaque nœud :

sudo restart presto-server

3.    Pour confirmer que la nouvelle configuration fonctionne comme prévu, recherchez une table en utilisant Hive et Presto dans la région Chine (Beijing).


Cet article vous a-t-il été utile ?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?