如何解决使用 Sqoop 将 Amazon RDS 数据以 Parquet 格式导出至 Amazon S3 时发生的“未知的数据集 URI 模式:数据集”错误?

上次更新时间:2020 年 5 月 11 日

我尝试使用 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.28.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 开发工具包数据集 URI 的更多信息,请参阅数据集、视图和存储库 URI


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?