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

1 分的閱讀內容
0

我想要解決在 Amazon EMR 中使用 Sqoop 將 Amazon Relational Database Service (Amazon RDS) 資料以 Parquet 格式匯出至 Amazon Simple Storage Service (Amazon S3) 時,出現的「未知資料集 URI 模式:資料集」錯誤。

解決方法

未知資料集 URI 模式:資料集錯誤會影響 Sqoop 版本 1.4.7。若要解決此錯誤,請完成下列步驟,以下載並安裝 kite-data-s3-1.1.0.jar

  1. 若要連線到 Amazon EMR 主節點,請使用 SSH

  2. 若要下載 kite-data-s3-1.1.0.jar,請使用 wget

    [hadoop@example-ip-address]$ wget https://repo1.maven.org/maven2/org/kitesdk/kite-data-s3/1.1.0/kite-data-s3-1.1.0.jar

    **注意:**請使用您的 IP 位址取代 example-ip-address

  3. 確認下載的檔案大小正確 (1.7 MB):

    [hadoop@example-ip-address]$ du -h kite-data-s3-1.1.0.jar
    1.7M     kite-data-s3-1.1.0.jar

    **注意:**請使用您的 IP 位址取代 example-ip-address

  4. 將下載的檔案移至 Sqoop 程式庫目錄 /usr/lib/sqoop/lib/

    sudo cp kite-data-s3-1.1.0.jar /usr/lib/sqoop/lib/
  5. 授予下載檔案所需的權限:

    sudo chmod 755 /usr/lib/sqoop/lib/kite-data-s3-1.1.0.jar
  6. 若要匯入下載的檔案,請使用 s3n 連接器。

    範例:

    sqoop import --connect jdbc:mysql://mysql.cdfqbesrukqe.eu-west-1.rds.amazonaws.com:3306/dev --username admin -P --table hist_root --target-dir example-s3n://example-bucket/sqoop_parquet/demo --as-parquetfile -m 2 --split-by identifiers -- --schema onwatch

    注意:如果您使用 s3 連接器,則會出現未知資料集 URI 模式:資料集錯誤。--target-dir 的值必須採用至少 3 個層級的路徑格式 (s3n://example-bucket/example-namespace/example-dataset>)

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