Saltar al contenido

¿Cómo pudo solucionar el error «El elemento clave proporcionado no coincide con el esquema» que se muestra cuando uso Hive en Amazon EMR para importar tablas de DynamoDB?

2 minutos de lectura
0

Cuando uso Apache Hive para importar tablas de Amazon DynamoDB a Amazon EMR, se muestra el error «El elemento clave proporcionado no coincide con el esquema».

Resolución

Si tiene un esquema incorrecto, datos dañados o discrepancia en los datos, es posible que se muestre el siguiente error:

«El elemento clave proporcionado no coincide con el esquema (servicio: AmazonDynamoDBv2; código de estado: 400; código de error: ValidationException; ID de solicitud: #ABC###########)»

Si el esquema incorrecto, los datos dañados o la discrepancia en los datos no fueron la causa del error, compruebe los registros de la aplicación de Hive. Para encontrar los registros de la aplicación Hive, conéctese al nodo principal del clúster de Amazon EMR y navegue hasta el directorio /mnt/var/log/hive.

Si ha activado el registro, puede encontrar los registros en Amazon Simple Storage Service (Amazon S3). Use una ruta similar a s3://log-location/cluster-id/node/primary-instance-id/applications/hive.

Registros de ejemplo:

Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"countryasin":"LOCATION '${INPUT}';","hts_type":null,"hts_code":null}
at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:565)
at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:86)
... 17 more
Caused by: java.lang.RuntimeException: com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: The provided key element does not match the schema (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: 0FF3KB36M2SJD8E79BUPOUP943VV4KQNSO5AEMVJF66Q9ASUAAJG)

La fila mencionada en el mensaje de error {"countryasin":"LOCATION '${INPUT}';","hts_type":null,"hts_code":null} forma parte del script de Hive. Este script de Hive se encuentra en la misma ubicación de Amazon S3 que los archivos de entrada. El trabajo de importación envía el script de Hive a la tabla de DynamoDB en forma de datos y lo usa en el trabajo de importación. Para solucionar este problema, mueva el script de Hive a otra ubicación de Amazon S3.

Información relacionada

Visualización de los archivos de registro de Amazon EMR

OFICIAL DE AWSActualizada hace 8 meses