如何解决我在 Amazon EMR 中使用 Sqoop 将 Amazon RDS 数据以 Parquet 格式导出到 Amazon S3 时出现的“Unknown dataset URI pattern: dataset”(未知的数据集 URI 模式:数据集)错误?

1 分钟阅读
0

我想解决我在 Amazon EMR 中使用 Sqoop 将 Amazon Relational Database Service (Amazon RDS) 数据以 Parquet 格式导出到 Amazon Simple Storage Service (Amazon S3) 时出现的“Unknown dataset URI pattern: dataset”(未知的数据集 URI 模式:数据集)错误。

解决方法

Unknown dataset URI pattern: dataset(未知的数据集 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

    **注意:**请将 example-ip-address 替换为您的 IP 地址。

  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

    **注意:**请将 example-ip-address 替换为您的 IP 地址。

  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 连接器,则会出现 Unknown dataset URI pattern: dataset(未知的数据集 URI 模式:数据集)错误。--target-dir 的值必须采用至少包含 3 层的路径格式 (s3n://example-bucket/example-namespace/example-dataset>)

有关详细信息,请参阅 Kite SDK 网站上的 Dataset, view, and repositories URI