如何解決在使用 Sqoop 以 Parquet 格式將 Amazon RDS 資料匯出到 Amazon S3 時發生的錯誤「未知的資料集 URI 模式:資料集」?

1 分的閱讀內容
0

我嘗試使用 Amazon EMR 叢集,以使用 Apache Sqoop 以 Apache Parquet 格式將 Amazon Relational Database Service (Amazon RDS) 資料匯出到 Amazon Simple Storage Service (Amazon S3)。我正在使用 --as-parquetfile 參數,但不斷收到此錯誤: 「檢查 s3a 資料集的 JAR 是否位於類路徑 org.kitesdk.data.DatasetNotFoundException 上: 未知的資料集 URI 模式:資料集。」

簡短說明

這個錯誤會影響 Sqoop 版本 1.4.7。若要解決此錯誤,請下載並安裝 kite-data-s3-1.1.0.jar

解決方法

**注意:**以下解決方法在 Amazon EMR 發行版 5.34.0 和 Sqoop 版本 1.4.7 上進行了測試。

1.    使用 SSH 連線至主節點

2.    使用 wget 下載 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.    確認下載的檔案大小正確 (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.    將 JAR 移動到 Sqoop 庫目錄 (/usr/lib/sqoop/lib/):

sudo cp kite-data-s3-1.1.0.jar /usr/lib/sqoop/lib/

5.    授予 JAR 上的權限:

sudo chmod 755 kite-data-s3-1.1.0.jar

6.    使用 s3n 連接器匯入 jar。如果您使用 s3 連接器,則會收到未知的資料集 URI 模式:資料集錯誤。

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

如需 Kite SDK 資料集 URI 的詳細資訊,請參閱資料集、檢視和儲存庫 URI


AWS 官方
AWS 官方已更新 2 年前