

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pertimbangan dengan Sqoop di Amazon EMR
<a name="emr-sqoop-considerations"></a>

Pertimbangkan item berikut ketika Anda menjalankan Sqoop di Amazon EMR.

## Menggunakan Sqoop dengan integrasi HCatalog
<a name="emr-sqoop-hcatalog"></a>

[Sqoop di Amazon EMR mendukung integrasi Sqoop-. HCatalog ](https://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html#_sqoop_hcatalog_integration) Saat Anda menggunakan Sqoop untuk menulis output ke HCatalog tabel di Amazon S3, nonaktifkan penulisan langsung Amazon EMR dengan menyetel properti dan ke. `mapred.output.direct.NativeS3FileSystem` `mapred.output.direct.EmrFileSystem` `false` Untuk informasi selengkapnya, lihat [Menggunakan HCatalog](emr-hcatalog-using.md). Anda dapat menggunakan perintah Hadoop `-D mapred.output.direct.NativeS3FileSystem=false` dan `-D mapred.output.direct.EmrFileSystem=false`. Jika Anda tidak menonaktifkan penulisan langsung, tidak ada kesalahan terjadi, tetapi tabel dibuat di Amazon S3 dan tidak ada data yang ditulis.

## Sqoop JDBC dan dukungan basis data
<a name="sqoop-supported-drivers-databases"></a>

Secara default, Sqoop sudah terinstal dengan driver MariaDB dan PostgreSQL. Driver PostgreSQL yang diinstal untuk Sqoop hanya bekerja pada PostgreSQL 8.4. Untuk menginstal satu set alternatif konektor JDBC untuk Sqoop, sambungkan ke simpul utama kluster dan instal di `/usr/lib/sqoop/lib`. Berikut ini adalah tautan untuk berbagai konektor JDBC:
+ MariaDB: [Tentang MariaDB Connector/J](https://mariadb.com/kb/en/mariadb/about-mariadb-connector-j/).
+ PostgreSQL: [Driver PostgreSQL JDBC](https://jdbc.postgresql.org/).
+ SQLServer: [Unduh driver Microsoft JDBC untuk SQL Server](https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server).
+ MySQL: [Unduh Connector/J](https://dev.mysql.com/downloads/connector/j/)
+ Oracle: [Dapatkan driver Oracle JDBC dan UCP dari repositori Oracle Maven](http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html)

Database yang didukung untuk Sqoop tercantum di url berikut, http://sqoop.apache.org/docs/*version*/SqoopUserGuide.html \$1\$1supported\$1databases, di mana *version* versi Sqoop yang Anda gunakan, misalnya 1.4.6. Jika JDBC connect string tidak cocok dengan mereka dalam daftar ini, Anda harus menentukan driver. 

Misalnya, Anda dapat mengekspor ke tabel database Amazon Redshift dengan perintah berikut (untuk 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
```

Anda dapat menggunakan kedua MariaDB dan MySQL string koneksi tetapi jika Anda menentukan koneksi string MariaDB, Anda perlu menentukan 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
```

Jika Anda menggunakan enkripsi Secure Socket Layer untuk mengakses database Anda, Anda perlu menggunakan JDBC URI seperti dalam contoh ekspor Sqoop berikut:

```
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
```

Untuk informasi selengkapnya tentang enkripsi SSL di RDS, lihat [Menggunakan SSL untuk mengenkripsi koneksi ke DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) dalam Panduan Pengguna Amazon RDS.

Untuk informasi selengkapnya, lihat dokumentasi [Apache Sqoop](http://sqoop.apache.org).

## Mengamankan kata sandi Anda
<a name="emr-sqoop-password"></a>

Ada beberapa metode yang dapat Anda pilih untuk meneruskan kata sandi Anda dengan aman:

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

Metode yang disukai mengenkripsi kata sandi dengan Java KeyStore (JKS), menghilangkan kebutuhan untuk menyimpan kata sandi dalam format yang dapat dibaca. 

1. Buat alias kata sandi. Pada prompt, masukkan kata sandi yang Anda gunakan untuk mengakses database. 

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

1. Gunakan alias kata sandi untuk meluncurkan pekerjaan 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
   ```

------
#### [ --file kata sandi ]

Anda dapat menggunakan `--password-file` perintah untuk meneruskan kata sandi melalui file seperti yang ditunjukkan pada contoh berikut:

1. Buat file baru yang berisi kata sandi:

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

1. Gunakan file untuk meluncurkan pekerjaan 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 ]

Anda dapat menggunakan `-P` perintah untuk memasukkan kata sandi melalui prompt seperti yang ditunjukkan pada contoh berikut:

```
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
```

------