

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Considerações sobre o Sqoop no Amazon EMR
<a name="emr-sqoop-considerations"></a>

Considere os seguintes itens quando executar o Sqoop no Amazon EMR.

## Usando o Sqoop com integração HCatalog
<a name="emr-sqoop-hcatalog"></a>

[O Sqoop no Amazon EMR oferece suporte à integração com o Sqoop. HCatalog ](https://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html#_sqoop_hcatalog_integration) Ao usar o Sqoop para gravar a saída em uma HCatalog tabela no Amazon S3, desative a gravação direta do Amazon EMR definindo as propriedades e como. `mapred.output.direct.NativeS3FileSystem` `mapred.output.direct.EmrFileSystem` `false` Para obter mais informações, consulte [Usando HCatalog](emr-hcatalog-using.md). Você pode usar os comandos `-D mapred.output.direct.NativeS3FileSystem=false` e `-D mapred.output.direct.EmrFileSystem=false` do Hadoop. Se você não desabilitar a gravação direta, nenhum erro ocorrerá, mas a tabela será criada no Amazon S3 e nenhum dado será gravado.

## Suporte do JDBC e de banco de dados para o Sqoop
<a name="sqoop-supported-drivers-databases"></a>

Por padrão, o Sqoop tem um driver MariaDB e PostgreSQL instalado. O driver do PostgreSQL instalado para o Sqoop só funciona para o PostgreSQL 8.4. Para instalar um conjunto alternativo de conectores JDBC para o Sqoop, conecte-se ao nó principal do cluster e instale-o em `/usr/lib/sqoop/lib`. Veja a seguir links para vários conectores JDBC:
+ MariaDB: [Sobre o MariaDB Connector/J](https://mariadb.com/kb/en/mariadb/about-mariadb-connector-j/).
+ PostgreSQL: [Driver JDBC para PostgreSQL](https://jdbc.postgresql.org/).
+ SQLServer: [Baixe o driver Microsoft JDBC para SQL Server](https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server).
+ MySQL: [baixar o Connector/J](https://dev.mysql.com/downloads/connector/j/)
+ Oracle: [obter drivers Oracle JDBC e UCP no repositório Maven do Oracle](http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html)

Os bancos de dados compatíveis com o Sqoop estão listados no seguinte url, http://sqoop.apache.org/docs/*version*/SqoopUserGuide.html \$1\$1supported\$1databases, onde *version* está a versão do Sqoop que você está usando, por exemplo, 1.4.6. Se a string de conexão JDBC não corresponder às desta lista, você precisará especificar um driver. 

Por exemplo, é possível exportar para uma tabela de banco de dados do Amazon Redshift com o seguinte comando (para JDBC 4.1):

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

Você pode usar ambas as strings de conexão MariaDB e MySQL, mas, se especificar a string de conexão MariaDB, precisará especificar o driver:

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

Se você estiver usando a criptografia SSL para acessar seu banco de dados, precisará usar um URI do JDBC, como no seguinte exemplo de exportação do Sqoop:

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

Para obter mais informações sobre criptografia SSL no RDS, consulte [Usar o SSL para criptografar uma conexão com uma instância de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) no Guia do usuário do Amazon RDS.

Para obter mais informações, consulte a documentação do [Apache Sqoop](http://sqoop.apache.org).

## Proteção da senha
<a name="emr-sqoop-password"></a>

Há vários métodos que você pode escolher para transmitir sua senha com segurança:

------
#### [ Java KeyStore ]

O método preferido criptografa a senha com um Java KeyStore (JKS), eliminando a necessidade de armazenar a senha em um formato legível. 

1. Crie um alias de senha. Quando solicitado, insira a senha usada para acessar o banco de dados. 

   ```
   hadoop credential create mydb.password.alias -provider jceks://hdfs/user/root/mysql.password.jceks
   ```

1. Use o alias de senha para executar o trabalho do Sqoop:

   ```
   sqoop export -Dhadoop.security.credential.provider.path=jceks://hdfs/user/root/mysql.password.jceks --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password-alias mydb.password.alias
   ```

------
#### [ --password-file ]

É possível usar o comando `--password-file` para transmitir a senha por meio de um arquivo, conforme mostrado no seguinte exemplo:

1. Crie um arquivo que contenha a senha:

   ```
   echo -n 'Mymasterpass1' > /home/hadoop/mysql-pass.password
   ```

1. Use o arquivo para executar o trabalho do Sqoop:

   ```
   sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password-file /home/hadoop/mysql-pass.password
   ```

------
#### [ -P ]

É possível usar o comando `-P` para inserir a senha por meio de um prompt, conforme mostrado no seguinte exemplo:

```
sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master -P
```

------