¿Por qué aparece el error «El token proporcionado tiene un formato incorrecto o no es válido por algún otro motivo» cuando lanzo un clúster de Amazon EMR con Hive y Presto en la región de AWS China (Pekín)?

2 minutos de lectura
0

He lanzado un clúster de Amazon EMR en la región de AWS China (Pekín) (cn-north-1). He utilizado Presto y Apache Hive para crear una tabla externa a partir de un bucket de Amazon Simple Storage Service (Amazon S3). Cuando consulto la tabla con Hive y Presto, aparece un error similar al siguiente: presto:default> select * from mydata; Consulta 20200912_072348_00009_qqx96, ERROR, 1 nodo Divisiones: 1 total, 0 listo (0,00 %) 0:03 [0 filas, 0 B] [0 filas/s, 0 B/s] Error de consulta 20200912_072348_00009_qqx96: El token proporcionado tiene un formato incorrecto o no es válido por algún otro motivo. (Servicio: Amazon S3; Código de estado: 400; Código de error: InvalidToken; ID de solicitud: 811359ED1D9F8250)

Breve descripción

En versiones anteriores de Amazon EMR, Presto no utiliza automáticamente la región en la que se encuentra el bucket de S3. Utilice una de las siguientes opciones para solucionar este error:

  • Actualice a la versión 5.12.0 de Amazon EMR o a otra versión posterior.
  • Para utilizar la versión 5.11.x o anterior de Amazon EMR, defina la propiedad hive.s3.pin-client-to-current-region como true.

Solución

Actualización a la versión 5.12.0 de Amazon EMR o a otra versión posterior

Inicie un nuevo clúster y elija la versión 5.12.0 de Amazon EMR u otra posterior. Para obtener más información, consulte Acerca de las versiones de Amazon EMR.

Definición de la propiedad hive.s3.pin-client-to-current-region como true (versión 5.11.x o anterior)

1.    En cada nodo, abra el archivo hive.properties y, a continuación, defina la propiedad hive.s3.pin-client-to-current-region como true. Ejemplo:

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.    Reinicie Presto en cada nodo:

sudo restart presto-server

3.    Para confirmar que la nueva configuración funciona según lo previsto, consulte una tabla con Hive y Presto en la región de China (Pekín).


Información relacionada

Apache Hive

Presto y Trino

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años