Tutorial - Membuat kluster Apache Hadoop sesuai permintaan di HDInsight menggunakan Azure Data Factory

Di tutorial ini, Anda belajar cara membuat kluster Apache Hadoop, sesuai permintaan, di Azure HDInsight menggunakan Azure Data Factory. Anda kemudian menggunakan alur data di Azure Data Factory untuk menjalankan pekerjaan Apache Hive dan menghapus kluster. Pada akhir tutorial ini, Anda belajar cara operationalize pekerjaan big data dengan pembuatan kluster, eksekusi pekerjaan, dan penghapusan kluster dilakukan sesuai jadwal.

Tutorial ini mencakup tugas-tugas berikut:

  • Membuat akun penyimpanan Azure
  • Memahami aktivitas Azure Data Factory
  • Membuat pabrik data menggunakan portal Microsoft Azure
  • Membuat layanan tertaut
  • Buat alur
  • Memicu alur
  • Memantau alur
  • Verifikasi output

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Prasyarat

  • Modul Az PowerShell sudah diinstal.

  • Perwakilan layanan Azure Active Directory. Setelah Anda membuat perwakilan layanan, pastikan untuk mengambil ID aplikasi dan kunci autentikasi menggunakan instruksi di artikel yang ditautkan. Anda akan memerlukan nilai-nilai ini di tutorial. Selain itu, pastikan perwakilan layanan adalah anggota dengan peran Kontributor dari langganan atau grup sumber daya tempat kluster dibuat. Untuk instruksi dalam mengambil nilai yang diperlukan dan menetapkan peran yang tepat, lihat Membuat perwakilan layanan Azure Active Directory.

Membuat objek Azure awal

Di bagian ini, Anda membuat berbagai objek yang akan digunakan untuk kluster HDInsight yang dibuat sesuai permintaan. Akun penyimpanan yang dibuat akan berisi sampel skrip HiveQL, partitionweblogs.hql, yang digunakan untuk menyimulasikan sampel pekerjaan Apache Hive yang berjalan di kluster.

Bagian ini menggunakan skrip Azure PowerShell untuk membuat akun penyimpanan dan menyalin file yang diperlukan dalam akun penyimpanan. Sampel skrip Azure PowerShell di bagian ini melakukan tugas berikut ini:

  1. Masuk ke Azure.
  2. Membuat grup sumber daya Azure.
  3. Membuat akun Azure Storage.
  4. Membuat kontainer blob di akun penyimpanan
  5. Menyalin sampel skrip HiveQL(partitionweblogs.hql) kontainer Blob. Sampel skrip sudah tersedia di kontainer Blob publik lainnya. Skrip PowerShell di bawah ini membuat salinan file-file ini ke dalam akun Azure Storage yang dibuatnya.

Membuat akun penyimpanan dan menyalin file

Penting

Tentukan nama untuk grup sumber daya Azure dan akun penyimpanan Azure yang akan dibuat oleh skrip. Tulis nama grup sumber daya, nama akun penyimpanan, dan kunci akun penyimpanan yang dihasilkan oleh skrip. Akan dibutuhkan di bagian berikutnya.

$resourceGroupName = "<Azure Resource Group Name>"
$storageAccountName = "<Azure Storage Account Name>"
$location = "East US"

$sourceStorageAccountName = "hditutorialdata"  
$sourceContainerName = "adfv2hiveactivity"

$destStorageAccountName = $storageAccountName
$destContainerName = "adfgetstarted" # don't change this value.

####################################
# Connect to Azure
####################################
#region - Connect to Azure subscription
Write-Host "`nConnecting to your Azure subscription ..." -ForegroundColor Green
$sub = Get-AzSubscription -ErrorAction SilentlyContinue
if(-not($sub))
{
    Connect-AzAccount
}

# If you have multiple subscriptions, set the one to use
# Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"

#endregion

####################################
# Create a resource group, storage, and container
####################################

#region - create Azure resources
Write-Host "`nCreating resource group, storage account and blob container ..." -ForegroundColor Green

New-AzResourceGroup `
    -Name $resourceGroupName `
    -Location $location

New-AzStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $destStorageAccountName `
    -Kind StorageV2 `
    -Location $location `
    -SkuName Standard_LRS `
    -EnableHttpsTrafficOnly 1

$destStorageAccountKey = (Get-AzStorageAccountKey `
    -ResourceGroupName $resourceGroupName `
    -Name $destStorageAccountName)[0].Value

$sourceContext = New-AzStorageContext `
    -StorageAccountName $sourceStorageAccountName `
    -Anonymous

$destContext = New-AzStorageContext `
    -StorageAccountName $destStorageAccountName `
    -StorageAccountKey $destStorageAccountKey

New-AzStorageContainer `
    -Name $destContainerName `
    -Context $destContext
#endregion

####################################
# Copy files
####################################
#region - copy files
Write-Host "`nCopying files ..." -ForegroundColor Green

$blobs = Get-AzStorageBlob `
    -Context $sourceContext `
    -Container $sourceContainerName `
    -Blob "hivescripts\hivescript.hql"

$blobs|Start-AzStorageBlobCopy `
    -DestContext $destContext `
    -DestContainer $destContainerName `
    -DestBlob "hivescripts\partitionweblogs.hql"

Write-Host "`nCopied files ..." -ForegroundColor Green
Get-AzStorageBlob `
    -Context $destContext `
    -Container $destContainerName
#endregion

Write-host "`nYou will use the following values:" -ForegroundColor Green
write-host "`nResource group name: $resourceGroupName"
Write-host "Storage Account Name: $destStorageAccountName"
write-host "Storage Account Key: $destStorageAccountKey"

Write-host "`nScript completed" -ForegroundColor Green

Verifikasi akun penyimpanan

  1. Masuk ke portal Microsoft Azure.
  2. Dari kiri, navigasi ke Semua layanan>Umum>Grup Sumber Daya.
  3. Pilih nama grup sumber daya yang Anda buat di skrip PowerShell Anda. Gunakan filter jika Anda memiliki terlalu banyak grup sumber daya yang tercantum.
  4. Dari tampilan Ringkasan, Anda akan melihat satu sumber daya yang tercantum kecuali Anda berbagi grup sumber daya dengan proyek lain. Sumber daya tersebut adalah akun penyimpanan dengan nama yang sudah Anda tentukan sebelumnya. Pilih nama akun penyimpanan.
  5. Pilih petak peta Kontainer.
  6. Pilih kontainer adfgetstarted. Anda akan melihat folder bernama hivescripts .
  7. Buka folder dan pastikan folder berisi sampel file skrip, partitionweblogs.hql.

Memahami aktivitas Azure Data Factory

Azure Data Factory mengatur dan mengotomatiskan pergerakan dan transformasi data. Azure Data Factory dapat membuat kluster HDInsight Hadoop tepat waktu untuk memproses potongan data input dan menghapus kluster saat pemrosesan selesai.

Di Azure Data Factory, pabrik data dapat memiliki satu atau beberapa alur data. Alur data memiliki satu atau beberapa aktivitas. Ada dua jenis aktivitas:

  • Aktivitas Pergerakan Data. Aktivitas pergerakan data digunakan untuk memindahkan data dari penyimpanan data sumber ke penyimpanan data tujuan.
  • Aktivitas Transformasi Data. Aktivitas Transformasi Data digunakan untuk mentransformasi/memproses data. HDInsight Hive Activity merupakan salah satu aktivitas transformasi yang didukung oleh Data Factory. Anda akan menggunakan aktivitas transformasi Apache Hive di tutorial ini.

Di artikel ini, Anda akan mengonfigurasikan aktivitas Apache Hive untuk membuat kluster HDInsight Hadoop sesuai permintaan. Saat aktivitas dijalankan untuk memproses data, inilah yang terjadi:

  1. Kluster HDInsight Hadoop secara otomatis akan dibuat untuk Anda tepat pada waktunya untuk memproses potongan.

  2. Data input diproses dengan menjalankan skrip HiveQL pada kluster. Di tutorial ini, skrip HiveQL yang terkait dengan aktivitas hive akan melakukan tindakan berikut:

    • Menggunakan tabel yang ada (hivesampletable) untuk membuat tabel lain HiveSampleOut.
    • Mengisi tabel HiveSampleOut hanya dengan kolom tertentu dari hivesampletable asli.
  3. Kluster HDInsight Hadoop dihapus setelah pemrosesan selesai dan kluster tidak aktif dalam jumlah waktu yang telah dikonfigurasi (pengaturan timeToLive). Jika potongan data berikutnya tersedia untuk diproses dalam waktu nonaktif timeToLive ini, kluster yang sama akan digunakan untuk memproses potongan.

Membuat pabrik data

  1. Masuk ke portal Microsoft Azure.

  2. Dari menu sebelah kiri, masuk ke + Create a resource>Analitik>Data Factory.

    Azure Data Factory on the portal

  3. Masukkan atau pilih nilai berikut ini untuk petak peta Pabrik data baru:

    Properti Nilai
    Nama Masukkan nama untuk pabrik data. Nama harus unik secara global.
    Versi Biarkan di V2.
    Langganan Pilih langganan Azure Anda.
    Grup sumber daya Pilih grup sumber daya yang Anda buat dengan skrip PowerShell.
    Lokasi Lokasi secara otomatis diatur ke lokasi yang Anda tentukan saat membuat grup sumber daya sebelumnya. Untuk tutorial ini, lokasi diatur ke US Timur.
    Aktifkan GIT Hapus centang kotak ini.

    Create Azure Data Factory using Azure portal

  4. Pilih Buat. Pembuatan pabrik data mungkin menghabiskan waktu antara 2 hingga 4 menit.

  5. Setelah pabrik data dibuat, Anda akan menerima pemberitahuan Penyebaran berhasil dengan tombol Masuk ke sumber daya. Pilih Buka sumber daya untuk membuka tampilan default Data Factory.

  6. Pilih Pembuat & Pemantau untuk meluncurkan portal penulisan dan pemantauan Azure Data Factory.

    Azure Data Factory portal overview

Membuat layanan tertaut

Di bagian ini, Anda akan menulis dua layanan tertaut di dalam pabrik data Anda.

  • Layanan tertaut Azure Storage menautkan akun penyimpanan Azure Anda ke pabrik data. Penyimpanan ini digunakan oleh kluster HDInsight sesuai permintaan. Penyimpanan ini juga berisi skrip Apache Hive yang dijalankan di kluster.
  • Layanan terhubung HDInsight sesuai permintaan. Azure Data Factory secara otomatis akan membuat kluster HDInsight dan menjalankan skrip Apache Hive. Kemudian menghapus kluster HDInsight setelah kluster tidak aktif dalam jangka waktu yang telah dikonfigurasi sebelumnya.

Membuat layanan tertaut Azure Storage

  1. Dari panel kiri halaman Mari kita mulai, pilih ikon Penulis.

    Create an Azure Data Factory linked service

  2. Pilih Koneksi dari sudut kiri bawah jendela lalu pilih +Baru.

    Create connections in Azure Data Factory

  3. Di kotak dialog Layanan Tertaut Baru, pilih Azure Blob Storage lalu pilih Lanjutkan.

    Create Azure Storage linked service for Data Factory

  4. Berikan nilai berikut untuk layanan penyimpanan yang ditautkan:

    Properti Nilai
    Nama Masukkan HDIStorageLinkedService.
    Langganan Azure Pilih langganan Anda dari daftar drop-down.
    Nama akun penyimpanan Pilih akun Azure Storage yang telah Anda buat sebagai bagian dari skrip PowerShell.

    Pilih Uji koneksi dan setelah berhasil, lalu pilih Buat.

    Provide name for Azure Storage linked service

Membuat layanan terhubung Microsoft Azure HDInsight sesuai permintaan

  1. Pilih lagi tombol + Baru untuk membuat layanan tertaut lainnya.

  2. Di jendela Layanan Tertaut Baru, pilih tab Komputasi.

  3. Pilih Azure HDInsight, lalu pilih Lanjutkan.

    Create HDInsight linked service for Azure Data Factory

  4. Di jendela Layanan Tertaut Baru, masukkan nilai berikut ini dan biarkan sisanya sebagai default:

    Properti Nilai
    Nama Masukkan HDInsightLinkedService.
    Jenis Pilih HDInsight sesuai permintaan.
    Layanan Tertaut Azure Storage Pilih HDIStorageLinkedService.
    Jenis kluster Pilih hadoop
    Time to live Berikan durasi yang Anda inginkan agar kluster HDInsight tetap tersedia sebelum dihapus secara otomatis.
    ID perwakilan layanan Berikan ID aplikasi perwakilan layanan Azure Active Directory yang Anda buat sebagai bagian dari prasyarat.
    Kunci perwakilan layanan Berikan kunci autentikasi untuk perwakilan layanan Azure Active Directory.
    Awalan nama kluster Berikan nilai yang akan menjadi awalan semua jenis kluster yang dibuat oleh pabrik data.
    Langganan Pilih langganan Anda dari daftar drop-down.
    Pilih grup sumber daya Pilih grup sumber daya yang dibuat sebagai bagian dari skrip PowerShell yang telah Anda gunakan sebelumnya.
    Jenis OS/nama pengguna SSH kluster Masukkan nama pengguna SSH, umumnya sshuser.
    Jenis OS/kata sandi SSH Kluster Sediakan kata sandi untuk pengguna SSH
    Jenis OS/Nama pengguna kluster Masukkan nama pengguna kluster, umumnya admin.
    Jenis OS/Kata sandi kluster Sediakan kata sandi untuk pengguna kluster.

    Kemudian pilih Buat.

    Provide values for HDInsight linked service

Membuat alur

  1. Pilih + tombol (plus), lalu pilih Alur.

    Create a pipeline in Azure Data Factory

  2. Di kotak alat Aktivitas, perluas HDInsight, dan tarik aktivitas Apache Hive ke permukaan perancang alur. Di tab Umum, berikan nama untuk aktivitas tersebut.

    Add activities to Data Factory pipeline

  3. Pastikan Anda telah memilih aktivitas Apache Hive, pilih tab Kluster HDI Cluster. Lalu, dari daftar drop-down HDInsight Linked Service, pilih layanan tertaut yang telah Anda buat sebelumnya, HDInsightLinkedService, untuk HDInsight.

    Provide HDInsight cluster details for the pipeline

  4. Pilih tab Skrip dan selesaikan langkah-langkah berikut ini:

    1. Untuk Layanan Tertaut Skrip, pilih HDIStorageLinkedService dari daftar drop down. Nilai ini adalah layanan tertaut penyimpanan yang sudah Anda buat sebelumnya.

    2. Untuk Jalur File, pilih Telusuri Penyimpanan dan navigasi ke lokasi tempat sampel skrip Apache Hive tersedia. Jika skrip PowerShell sebelumnya sudah pernah dijalankan, lokasi seharusnya berada di adfgetstarted/hivescripts/partitionweblogs.hql.

      Provide Hive script details for the pipeline

    3. Pada Parameter>Tingkat Lanjut, pilih Auto-fill from script . Opsi ini mencari parameter apa pun dalam skrip Apache Hive yang memerlukan nilai pada waktu runtime.

    4. Di kotak teks nilai, tambahkan folder yang sudah ada dalam format wasbs://adfgetstarted@<StorageAccount>.blob.core.windows.net/outputfolder/. Jalur tersebut peka huruf besar/kecil. Jalur ini adalah tempat output skrip akan disimpan. Skema wasbs ini diperlukan karena sekarang akun penyimpanan memiliki transfer aman yang harus diaktifkan secara default.

      Provide parameters for the Hive script

  5. Pilih Validasi untuk memvalidasi alur. Pilih >> tombol (panah kanan) untuk menutup jendela validasi.

    Validate the Azure Data Factory pipeline

  6. Terakhir, pilih Terbitkan Semua untuk menerbitkan artefak ke Azure Data Factory.

    Publish the Azure Data Factory pipeline

Memicu alur

  1. Dari toolbar di permukaan desainer, pilih Tambahkan Pemicu>Picu Sekarang.

    Trigger the Azure Data Factory pipeline

  2. Pilih OK di blade sisi pop-up.

Memantau alur

  1. Beralih ke tab Pantau di sebelah kiri. Anda akan melihat alur yang berjalan di daftar Eksekusi Alur. Perhatikan status eksekusi di bawah kolom Status.

    Monitor the Azure Data Factory pipeline

  2. Pilih Refresh untuk merefresh status.

  3. Anda juga dapat memilih ikon Lihat Eksekusi Aktivitas untuk melihat aktivitas berjalan yang terkait dengan alur. Pada cuplikan layar di bawah ini, Anda hanya akan melihat satu aktivitas berjalan karena hanya terdapat satu aktivitas di alur yang Anda buat. Untuk beralih kembali ke tampilan sebelumnya, pilih Alur di arah bagian atas halaman.

    Monitor the Azure Data Factory pipeline activity

Verifikasi output

  1. Untuk memverifikasi output, di portal Microsoft Azure masuk ke akun penyimpanan yang Anda gunakan untuk tutorial ini. Anda akan melihat folder atau kontainer berikut ini:

    • Anda akan melihat adfgerstarted/outputfolder yang berisi output skrip Apache Hive yang dijalankan sebagai bagian dari alur.

    • Anda melihat kontainer adfhdidatafactory-<linked-service-name>-<timestamp>. Kontainer ini adalah lokasi penyimpanan default dari kluster HDInsight yang dibuat sebagai bagian dari eksekusi alur.

    • Anda akan melihat kontainer adfjobs yang memiliki log pekerjaan Azure Data Factory.

      Verify the Azure Data Factory pipeline output

Membersihkan sumber daya

Dengan pembuatan kluster HDInsight sesuai permintaan, Anda tidak perlu menghapus kluster HDInsight secara eksplisit. Kluster dihapus berdasarkan konfigurasi yang Anda berikan saat membuat alur. Bahkan setelah kluster dihapus, akun penyimpanan yang terkait dengan kluster akan tetap ada. Perilaku tersebut sudah dirancang sehingga Anda dapat menjaga agar data Anda tetap utuh. Namun, jika Anda tidak ingin mempertahankan data, Anda dapat menghapus akun penyimpanan yang sudah dibuat.

Atau, Anda dapat menghapus seluruh grup sumber daya yang sudah dibuat untuk tutorial ini. Proses ini menghapus akun penyimpanan dan Azure Data Factory yang sudah dibuat.

Menghapus grup sumber daya

  1. Masuk ke portal Microsoft Azure.

  2. Pilih Grup Sumber Daya di panel sebelah kiri.

  3. Pilih nama grup sumber daya yang Anda buat di skrip PowerShell Anda. Gunakan filter jika Anda memiliki terlalu banyak grup sumber daya yang tercantum. Grup sumber daya akan terbuka.

  4. Pada petak peta Sumber Daya, Anda akan memiliki pabrik data dan akun penyimpanan default yang tercantum kecuali Anda berbagi grup sumber daya dengan proyek lain.

  5. Pilih Hapus grup sumber daya. Akun penyimpanan dan data yang disimpan di akun penyimpanan akan terhapus.

    Azure portal delete resource group

  6. Masukkan nama grup sumber daya untuk mengonfirmasi penghapusan, lalu pilih Hapus.

Langkah berikutnya

Di artikel ini, Anda mempelajari cara menggunakan Azure Data Factory untuk membuat kluster HDInsight sesuai permintaan dan menjalankan pekerjaan Apache Hive. Lanjutkan ke artikel berikutnya untuk mempelajari cara membuat kluster HDInsight dengan konfigurasi kustom.