Estoy intentando utilizar un clúster de Amazon EMR para exportar datos de Amazon Relational Database Service (Amazon RDS) a Amazon Simple Storage Service (Amazon S3) en formato Apache Parquet mediante Apache Sqoop. Estoy usando el parámetro --as-parquetfile, pero sigo recibiendo este error: «Compruebe que los archivos JAR de los conjuntos de datos s3a estén en la ruta de clase org.kitesdk.data.DatasetNotFoundException: Patrón de URI de conjunto de datos desconocido: conjunto de datos».
Breve descripción
Este error afecta a la versión 1.4.7 de Sqoop. Para resolver el error, descargue e instale kite-data-s3-1.1.0.jar.
Resolución
Nota: La siguiente solución se ha probado en la versión 5.34.0 de Amazon EMR y en la versión 1.4.7 de Sqoop.
1. Conéctese al nodo maestro mediante SSH.
2. Use wget para descargar kite-data-s3-1.1.0.jar:
[hadoop@ip-xxx-xx-xx-x]$ wget https://repo1.maven.org/maven2/org/kitesdk/kite-data-s3/1.1.0/kite-data-s3-1.1.0.jar
3. Confirme que el archivo descargado tiene el tamaño correcto (1,7 MB):
[hadoop@ip-xxx-xx-xx-x]$ du -h
1.7M /usr/lib/sqoop/lib/kite-data-s3-1.1.0.jar
4. Mueva el archivo JAR al directorio de la biblioteca de Sqoop (/usr/lib/sqoop/lib/):
sudo cp kite-data-s3-1.1.0.jar /usr/lib/sqoop/lib/
5. Conceda el permiso en el archivo JAR:
sudo chmod 755 kite-data-s3-1.1.0.jar
6. Utilice el conector s3n para importar el archivo jar. Si usa el conector s3, aparecerá el error Patrón de URI del conjunto de datos desconocido: conjunto de datos.
sqoop import --connect jdbc:mysql://mysql.cdfqbesrukqe.eu-west-1.rds.amazonaws.com:8193/dev --username admin -P --table hist_root --target-dir "s3n://awsexamplebucket/sqoop_parquet/demo" --as-parquetfile -m 2 --split-by identifiers -- --schema onwatch
Para obtener más información sobre el URI del conjunto de datos del SDK de Kite, consulte URI de conjuntos de datos, vistas y repositorios.