Je tente d'utiliser un cluster Amazon EMR pour exporter, dans Amazon Simple Storage Service (Amazon S3), des données Amazon Relational Database Service (Amazon RDS) au format Apache Parquet à l'aide d'Apache Sqoop. J'emploie le paramètre « --as-parquetfile », mais reçois à chaque fois ce message d'erreur :
« Vérifiez que les fichiers JAR des ensembles de données s3a se trouvent dans le chemin de classe org.kitesdk.data.DatasetNotFoundException : modèle d'URI inconnu pour l'ensemble de données : ensemble de données. ».
Brève description
Ce message d'erreur affecte la version 1.4.7 de Sqoop. Pour y remédier, téléchargez et installez le fichier kite-data-s3-1.1.0.jar.
Résolution
Remarque : la solution suivante a été testée avec la version 5.34.0 d'Amazon EMR et la version 1.4.7 de Sqoop.
1. Connectez-vous au nœud maître en utilisant SSH.
2. Utilisez le programme wget pour télécharger le fichier 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. Vérifiez que la taille du fichier téléchargé correspond bien à 1,7 Mo :
[hadoop@ip-xxx-xx-xx-x]$ du -h
1.7M /usr/lib/sqoop/lib/kite-data-s3-1.1.0.jar
4. Placez le fichier JAR dans le répertoire de la bibliothèque Sqoop ( /usr/lib/sqoop/lib/) :
sudo cp kite-data-s3-1.1.0.jar /usr/lib/sqoop/lib/
5. Accordez les autorisations associées au fichier JAR :
sudo chmod 755 kite-data-s3-1.1.0.jar
6. Utilisez le connecteur s3n pour importer le fichier jar. Si vous utilisez le connecteur s3, le message d'erreur Modèle URI de jeu de données inconnu : jeu de données s'affiche.
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
Pour plus informations sur l'URI du jeu de données associé au Kite SDK, consultez URI de jeu de données, de vues et de référentiels.