Ich versuche, einen Amazon-EMR-Cluster zu verwenden, um Daten aus Amazon Relational Database Service (Amazon RDS) im Apache-Parquet-Format mithilfe von Apache Sqoop nach Amazon Simple Storage Service (Amazon S3) zu exportieren. Ich verwende den Parameter --as-parquetfile, erhalte aber immer wieder diese Fehlermeldung: „Check that JARs for s3a datasets are on the class path org.kitesdk.data.DatasetNotFoundException: Unknown dataset URI pattern: dataset.“
Kurzbeschreibung
Dieser Fehler betrifft die Version 1.4.7. von Sqoop. Um den Fehler zu beheben, laden Sie das Modul kite-data-s3-1.1.0.jar herunter und installieren Sie es.
Lösung
Hinweis: Die folgende Lösung wurde mit Amazon EMR Version 5.34.0 und Sqoop-Version 1.4.7 getestet.
1. Stellen Sie über SSH eine Verbindung zum Hauptknoten her.
2. Verwenden Sie wget, um kite-data-s3-1.1.0.jar herunterzuladen:
[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. Vergewissern Sie sich, dass die heruntergeladene Datei die richtige Größe hat (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. Verschieben Sie das JAR in das Sqoop-Bibliotheksverzeichnis (/usr/lib/sqoop/lib/):
sudo cp kite-data-s3-1.1.0.jar /usr/lib/sqoop/lib/
5. Erteilen Sie die Erlaubnis für das JAR:
sudo chmod 755 kite-data-s3-1.1.0.jar
6. Verwenden Sie den s3n-Konnektor, um das JAR zu importieren. Wenn Sie den s3-Konnektor verwenden, erhalten Sie den Fehler Unknown dataset URI pattern: dataset.
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
Weitere Informationen zur Kite-SDK-Datensatz-URI finden Sie unter Dataset, view, and repository URIs.