Bagikan melalui


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.

  1. Pilih gambar berikut untuk membuka templat Resource Manager di portal Microsoft Azure.

    Menyebarkan ke tombol Azure untuk kluster baru

  2. 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 adminyang telah diisi sebelumnya .
    Kata Sandi masuk kluster Masukkan kata sandi.
    Nama Pengguna Ssh Pertahankan nilai sshuseryang telah diisi sebelumnya .
    Kata Sandi Ssh Masukkan kata sandi.
    Masuk Admin Sql Pertahankan nilai sqluseryang 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 adalah e6qhezrh2pdqu.

  3. Pilih Saya menyetujui syarat dan ketentuan yang dinyatakan di atas.

  4. 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: