Pertimbangan dengan Sqoop di Amazon EMR - Amazon EMR

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

Pertimbangkan item berikut ketika Anda menjalankan Sqoop di Amazon EMR.

Menggunakan Sqoop dengan integrasi HCatalog

Sqoop di Amazon EMR mendukung integrasi Sqoop-HCatalog. Bila Anda menggunakan Sqoop untuk menulis keluaran ke tabel HCatalog di Amazon S3, nonaktifkan penulisan langsung Amazon EMR dengan menetapkan properti mapred.output.direct.NativeS3FileSystem dan mapred.output.direct.EmrFileSystem ke false. Untuk informasi selengkapnya, lihat Menggunakan HCatalog. 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

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:

Basis data yang didukung Sqoop tertera di url berikut ini, http://sqoop.apache.org/docs/ version/SqoopUserGuide.html #_supported_databases, di mana versi merupakan 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://mybucket/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://mybucket/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://mybucket/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 dalam Panduan Pengguna Amazon RDS.

Untuk informasi selengkapnya, lihat dokumentasi Apache Sqoop.