Amazon EMR
Amazon EMR 版本指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Apache Sqoop

Apache Sqoop 是用于在 Amazon S3、Hadoop、HDFS 和 RDBMS 数据库之间传输数据的工具。有关更多信息,请参阅 Apache Sqoop 网站

适用于此版本 Amazon EMR 的 Sqoop 版本信息

应用程序 Amazon EMR 发行版标签 随此应用程序安装的组件

Sqoop 1.4.6

emr-5.4.0

emrfs、emr-ddb、emr-goodies、hadoop-client、hadoop-mapred、hadoop-hdfs-datanode、hadoop-hdfs-library、hadoop-hdfs-namenode、hadoop-httpfs-server、hadoop-kms-server、hadoop-yarn-nodemanager、hadoop-yarn-resourcemanager、mysql-server、sqoop-client

Sqoop JDBC 和数据库支持

默认情况下,Sqoop 已安装 MariaDB 和 PostgresSQL 驱动程序。为 Sqoop 安装的 PostgresSQL 驱动程序仅对 PostgreSQL 8.4 有效。要安装 Sqoop 的备用 JDBC 连接器集,请将其安装在 /usr/lib/sqoop/lib 中。下面是各个 JDBC 连接器的链接:

URL http://sqoop.apache.org/docs/version/SqoopUserGuide.html#_supported_databases 中列出了 Sqoop 支持的数据库,其中的 version 是您正在使用的 Sqoop 的版本,例如 1.4.6。如果 JDBC 连接字符串与此列表中的不匹配,您将需要指定驱动程序。

例如,您可使用以下命令导出到 Amazon Redshift 数据库表 (适用于 JDBC 4.1) :

sqoop export --connect jdbc:redshift://$MYREDSHIFTHOST:5439/mydb --table mysqoopexport --export-dir s3://mybucket/myinputfiles/ --driver com.amazon.redshift.jdbc41.Driver --username master --password Mymasterpass1

您可同时使用 MariaDB 和 MySQL 连接字符串,但如果您指定 MariaDB 连接字符串,则需要指定驱动程序:

sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://mybucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password Mymasterpass1

如果您使用安全套接字层加密来访问您的数据库,则需要使用与以下 Sqoop 导出示例中类似的 JDBC URI:

sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb?verifyServerCertificate=false&useSSL=true&requireSSL=true --table mysqoopexport --export-dir s3://mybucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password Mymasterpass1

有关 RDS 中的 SSL 加密的更多信息,请参阅 Amazon Relational Database Service User Guide中的使用 SSL 加密与数据库实例的连接

有关更多信息,请参阅 Apache Sqoop 文档。