Consideraciones relacionadas con el uso de Sqoop en Amazon EMR - Amazon EMR

Consideraciones relacionadas con el uso de Sqoop en Amazon EMR

Tenga en cuenta los siguientes elementos al ejecutar Sqoop en Amazon EMR.

Uso de Sqoop con la integración de HCatalog

Sqoop en Amazon EMR admite la integración de HCatalog con Sqoop. Cuando utilice Sqoop para escribir el resultado en una tabla de HCatalog en Amazon S3, deshabilite la escritura directa de Amazon EMR; para ello, establezca las propiedades mapred.output.direct.NativeS3FileSystem y mapred.output.direct.EmrFileSystem en false. Para obtener más información, consulte Uso de HCatalog. Puede utilizar los comandos -D mapred.output.direct.NativeS3FileSystem=false y -D mapred.output.direct.EmrFileSystem=false de Hadoop. Si no se desactiva la escritura directa, no se produce ningún error, pero la tabla se crea en Amazon S3 y no se escriben datos.

Compatibilidad con JDBC y bases de datos de Sqoop

De forma predeterminada, Sqoop tiene instalado un controlador de MariaDB y PostgresSQL. El controlador de PostgresSQL instalado para Sqoop solo funciona en PostgreSQL 8.4. Para instalar un conjunto alternativo de conectores JDBC para Sqoop, conéctese al nodo principal del clúster e instálelos en /usr/lib/sqoop/lib. A continuación se indican los enlaces para diversos conectores JDBC:

Las bases de datos compatibles con Sqoop se muestran en la siguiente URL: http://sqoop.apache.org/docs/versión/SqoopUserGuide.html#_supported_databases, donde versión es la versión de Sqoop que se utiliza, por ejemplo, la 1.4.6. Si la cadena de conexión de JDBC no coincide con ninguna de las cadenas de esta lista, debe especificar un controlador.

Por ejemplo, puede exportar a una tabla de base de datos de Amazon Redshift con el siguiente comando (para 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

Puede utilizar las cadenas de conexión de MariaDB y MySQL, pero si especifica la cadena de conexión de MariaDB, tiene que especificar el controlador:

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

Si utiliza el cifrado de Capa de conexión segura para acceder a la base de datos, tiene que utilizar un URI de JDBC como en el siguiente ejemplo de exportación de Sqoop:

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

Para más información sobre el cifrado SSL en RDS, consulte Uso de SSL para cifrar una conexión a una instancia de base de datos en la Guía del usuario de Amazon RDS.

Para obtener más información, consulte la documentación de Apache Sqoop.