Menggunakan Apache Sqoop dengan Hadoop di HDInsight
Pelajari cara menggunakan Apache Sqoop di HDInsight untuk mengimpor dan mengekspor data antara kluster HDInsight dan Azure SQL Database.
Meskipun Apache Hadoop adalah pilihan alami untuk memproses data yang tidak terstruktur dan semi terstruktur, seperti log dan file, mungkin juga ada kebutuhan untuk memproses data terstruktur yang disimpan dalam database hubungan.
Apache Sqoop adalah alat yang dirancang untuk mentransfer data antara kluster Hadoop dan database hubungan. Anda dapat menggunakannya untuk mengimpor data dari sistem manajemen database relasional (RDBMS) seperti SQL Server, MySQL, atau Oracle ke dalam sistem file terdistribusi Hadoop (HDFS), mengubah data di Hadoop dengan MapReduce atau Apache Hive, lalu mengekspor data kembali ke RDBMS. Dalam artikel ini, Anda menggunakan Azure SQL Database untuk database hubungan Anda.
Penting
Artikel ini menyiapkan lingkungan pengujian untuk melakukan transfer data. Anda kemudian memilih metode transfer data untuk lingkungan ini dari salah satu metode di bagian Jalankan pekerjaan Sqoop.
Untuk versi Sqoop yang didukung di kluster HDInsight, lihat Apa yang baru dalam versi kluster yang disediakan oleh HDInsight?
Memahami skenario
Kluster HDInsight dilengkapi dengan beberapa data sampel. Anda akan menggunakan dua sampel:
- File log Apache
Log4j
, yang terletak di/example/data/sample.log
. Log berikut diekstrak dari berkas:
2012-02-03 18:35:34 SampleClass6 [INFO] everything normal for id 577725851
2012-02-03 18:35:34 SampleClass4 [FATAL] system problem at id 1991281254
2012-02-03 18:35:34 SampleClass3 [DEBUG] detail for id 1304807656
...
Tabel Apache Hive bernama
hivesampletable
, yang mereferensikan file data yang berada di/hive/warehouse/hivesampletable
. Tabel ini berisi beberapa data perangkat seluler.Bidang Jenis Data clientid string querytime string market string deviceplatform string devicemake string devicemodel string state string negara string querydwelltime ganda sessionid
bigint sessionpagevieworder bigint
Dalam artikel ini, Anda menggunakan dua himpunan data ini untuk menguji impor dan ekspor Sqoop.
Menyiapkan lingkungan pengujian
Kluster, database SQL, dan objek lainnya dibuat melalui portal Microsoft Azure menggunakan templat Azure Resource Manager. Templat dapat ditemukan di Templat Mulai Cepat Azure. Templat Resource Manager memanggil paket bacpac untuk menyebarkan skema tabel ke database SQL. Jika Anda ingin menggunakan kontainer privat file bacpac, gunakan nilai berikut dalam templat:
"storageKeyType": "Primary",
"storageKey": "<TheAzureStorageAccountKey>",
Catatan
Impor menggunakan templat atau portal Microsoft Azure hanya mendukung impor file BACPAC dari penyimpanan blob Azure.
Pilih gambar berikut untuk membuka templat Resource Manager di portal Microsoft Azure.
Masukkan properti berikut:
Bidang Nilai Langganan Pilih langganan Azure Anda dari menu drop-down. Grup sumber daya Pilih grup sumber daya Anda dari menu drop-down, atau buat grup baru Lokasi Pilih wilayah dari menu drop-down. Nama kluster Masukkan nama untuk kluster Hadoop. Gunakan huruf kecil saja. Nama Pengguna masuk kluster Pertahankan nilai admin
yang telah diisi sebelumnya .Kata Sandi masuk kluster Masukkan kata sandi. Nama Pengguna Ssh Pertahankan nilai sshuser
yang telah diisi sebelumnya .Kata Sandi Ssh Masukkan kata sandi. Masuk Admin Sql Pertahankan nilai sqluser
yang telah diisi sebelumnya .Kata Sandi Admin Sql Masukkan kata sandi. Lokasi _artifacts Gunakan nilai default kecuali Anda ingin menggunakan file bacpac Anda sendiri di lokasi yang berbeda. Token Sas Lokasi_artifacts Biarkan kosong. Nama File Bacpac Gunakan nilai default kecuali Anda ingin menggunakan file bacpac Anda sendiri. Lokasi Gunakan nilai default. Nama server SQL logis adalah
<ClusterName>dbserver
. Nama database adalah<ClusterName>db
. Nama akun penyimpanan default adalahe6qhezrh2pdqu
.Pilih Saya menyetujui syarat dan ketentuan yang dinyatakan di atas.
Pilih Beli. Anda melihat petak baru berjudul Mengirimkan penyebaran untuk Penyebaran templat. Dibutuhkan sekitar 20 menit untuk membuat kluster dan database SQL.
Menjalankan pekerjaan Sqoop
HDInsight dapat menjalankan pekerjaan Sqoop dengan menggunakan berbagai metode. Gunakan tabel berikut untuk memutuskan metode yang tepat untuk Anda, kemudian ikuti tautan untuk mendapatkan panduannya.
Gunakan ini jika Anda menginginkan... | ...shell interaktif | ...pemrosesan batch | ... dari sistem operasi klien ini |
---|---|---|---|
SSH | ? | ? | Linux, Unix, macOS X, atau Windows |
.NET SDK untuk Hadoop | ? | Windows (untuk saat ini) | |
Azure PowerShell | ? | Windows |
Batasan
- Ekspor massal - Dengan HDInsight berbasis Linux, konektor Sqoop yang digunakan untuk mengekspor data ke Microsoft SQL Server atau Azure SQL Database saat ini tidak mendukung penyisipan massal.
- Batching - Dengan HDInsight berbasis Linux, Saat menggunakan tombol
-batch
saat melakukan sisipan, Sqoop melakukan beberapa penyisipan, bukan melakukan batching operasi penyisipan.
Langkah berikutnya
Sekarang Anda telah mempelajari cara menggunakan Sqoop. Untuk mempelajari selengkapnya, lihat:
- Gunakan Apache Hive dengan Azure HDInsight
- Mengunggah data ke HDInsight: Temukan metode lain untuk mengunggah data ke penyimpanan HDInsight/Azure Blob.
- Gunakan Apache Sqoop untuk mengimpor dan mengekspor data antara Apache Hadoop di HDInsight dan SQL Database