Öğretici: Azure Data Factory kullanarak HDInsight'ta isteğe bağlı Apache Hadoop kümeleri oluşturma

Bu öğreticide, Azure Data Factory kullanarak Azure HDInsight'ta isteğe bağlı bir Apache Hadoop kümesi oluşturmayı öğreneceksiniz. Ardından Hive işlerini çalıştırmak ve kümeyi silmek için Azure Data Factory'deki veri işlem hatlarını kullanırsınız. Bu öğreticinin sonunda küme oluşturma, iş çalıştırma ve küme silme işleminin zamanlamaya göre yapıldığı büyük veri işini çalıştırmayı öğreneceksiniz operationalize .

Bu öğretici aşağıdaki görevleri kapsar:

  • Azure Depolama hesabı oluşturma
  • Azure Data Factory etkinliğini anlama
  • Azure portalını kullanarak veri fabrikası oluşturma
  • Bağlı hizmetler oluşturma
  • İşlem hattı oluşturma
  • İşlem hattını tetikleme
  • İşlem hattını izleme
  • Çıktıyı doğrulama

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

  • PowerShell Az Modülü yüklü.

  • Microsoft Entra hizmet sorumlusu. Hizmet sorumlusunu oluşturduktan sonra, bağlı makaledeki yönergeleri kullanarak uygulama kimliğini ve kimlik doğrulama anahtarını almayı unutmayın. Bu öğreticinin ilerleyen bölümlerinde bu değerlere ihtiyacınız vardır. Ayrıca, hizmet sorumlusunun aboneliğin Katkıda Bulunan rolünün veya kümenin oluşturulduğu kaynak grubunun üyesi olduğundan emin olun. Gerekli değerleri alma ve doğru rolleri atama yönergeleri için bkz . Microsoft Entra hizmet sorumlusu oluşturma.

Ön Azure nesneleri oluşturma

Bu bölümde, isteğe bağlı olarak oluşturduğunuz HDInsight kümesi için kullanılacak çeşitli nesneler oluşturacaksınız. Oluşturulan depolama hesabı, partitionweblogs.hqlkümede çalışan örnek bir Apache Hive işinin benzetimini yapmak için kullandığınız örnek HiveQL betiğini içerir.

Bu bölümde, depolama hesabını oluşturmak ve depolama hesabı içindeki gerekli dosyaların üzerine kopyalamak için bir Azure PowerShell betiği kullanılır. Bu bölümdeki Azure PowerShell örnek betiği aşağıdaki görevleri yerine getirin:

  1. Azure'da oturum açar.
  2. Bir Azure kaynak grubu oluşturur.
  3. Azure Depolama hesabı oluşturur.
  4. Depolama hesabında blob kapsayıcısı oluşturur
  5. Blob kapsayıcısını örnek HiveQL betiğini (partitionweblogs.hql) kopyalar. Örnek betik başka bir genel Blob kapsayıcısında zaten kullanılabilir. Aşağıdaki PowerShell betiği, bu dosyaların bir kopyasını oluşturduğu Azure Depolama hesabına oluşturur.

Depolama hesabı oluşturma ve dosyaları kopyalama

Önemli

Betik tarafından oluşturulacak Azure kaynak grubunun ve Azure depolama hesabının adlarını belirtin. Betik tarafından çıktısı alınan kaynak grubu adını, depolama hesabı adını ve depolama hesabı anahtarını not edin. Sonraki bölümde bunlar gerekecektir.

$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

Depolama hesabını doğrulama

  1. Azure portalı üzerinde oturum açın.
  2. Soldan Tüm hizmetler>Genel>Kaynak grupları'na gidin.
  3. PowerShell betiğinizde oluşturduğunuz kaynak grubu adını seçin. Listede çok fazla kaynak grubu varsa filtreyi kullanın.
  4. Genel Bakış görünümünde, kaynak grubunu diğer projelerle paylaşmadığınız sürece bir kaynağın listelendiğini görürsünüz. Bu kaynak, daha önce belirttiğiniz ada sahip depolama hesabıdır. Depolama hesabı adını seçin.
  5. Kapsayıcılar kutucuğunu seçin.
  6. adfgetstarted kapsayıcısını seçin. adlı hivescriptsbir klasör görürsünüz.
  7. Klasörü açın ve partitionweblogs.hql adlı örnek betik dosyasını içerdiğinden emin olun.

Azure Data Factory etkinliğini anlama

Azure Data Factory , verilerin taşınmasını ve dönüştürülmesi işlemlerini düzenler ve otomatikleştirir. Azure Data Factory, bir giriş veri dilimini işlemek ve işlem tamamlandığında kümeyi silmek için tam zamanında bir HDInsight Hadoop kümesi oluşturabilir.

Azure Data Factory'de bir veri fabrikasında bir veya daha fazla veri işlem hattı olabilir. Veri işlem hattında bir veya daha fazla etkinlik vardır. İki tür etkinlik vardır:

  • Veri Taşıma Etkinlikleri. Verileri bir kaynak veri deposundan hedef veri deposuna taşımak için veri taşıma etkinliklerini kullanırsınız.
  • Veri Dönüştürme Etkinlikleri. Verileri dönüştürmek/işlemek için veri dönüştürme etkinliklerini kullanırsınız. HDInsight Hive Etkinliği, Data Factory tarafından desteklenen dönüştürme etkinliklerinden biridir. Bu öğreticide Hive dönüştürme etkinliğini kullanırsınız.

Bu makalede Hive etkinliğini isteğe bağlı HDInsight Hadoop kümesi oluşturacak şekilde yapılandıracaksınız. Etkinlik verileri işlemek için çalıştırıldığında şunlar olur:

  1. Dilimi tam zamanında işlemeniz için otomatik olarak bir HDInsight Hadoop kümesi oluşturulur.

  2. Giriş verileri, kümede bir HiveQL betiği çalıştırılarak işlenir. Bu öğreticide, hive etkinliğiyle ilişkili HiveQL betiği aşağıdaki eylemleri gerçekleştirir:

    • Başka bir HiveSampleOut tablosu oluşturmak için mevcut tabloyu (hivesampletable) kullanır.
    • HiveSampleOut tablosunu yalnızca özgün hivesampletable'dan belirli sütunlarla doldurur.
  3. HDInsight Hadoop kümesi, işlem tamamlandıktan sonra silinir ve küme yapılandırılan süre boyunca boşta kalır (timeToLive ayarı). Sonraki veri dilimi bu timeToLive boşta kalma süresi içinde ile işlenebilir durumdaysa, dilimi işlemek için aynı küme kullanılır.

Veri fabrikası oluşturma

  1. Azure Portal’ında oturum açın.

  2. Sol menüden Analytics>Data Factory'ye + Create a resource>gidin.

    Azure Data Factory on the portal.

  3. Yeni veri fabrikası kutucuğu için aşağıdaki değerleri girin veya seçin:

    Özellik Değer
    Veri Akışı Adı Veri fabrikası için bir ad girin. Bu adın genel olarak benzersiz olması gerekir.
    Sürüm V2'de ayrıl.
    Abonelik Azure aboneliği seçin.
    Kaynak grubu PowerShell betiğini kullanarak oluşturduğunuz kaynak grubunu seçin.
    Konum Konum, daha önce kaynak grubunu oluştururken belirttiğiniz konuma otomatik olarak ayarlanır. Bu öğretici için konum Doğu ABD olarak ayarlanmıştır.
    GIT'i etkinleştirme Bu kutunun işaretini kaldırın.

    Create Azure Data Factory using Azure portal.

  4. Oluştur'u belirleyin. Veri fabrikası oluşturmak 2 ila 4 dakika arasında sürebilir.

  5. Veri fabrikası oluşturulduktan sonra Kaynağa git düğmesiyle dağıtım başarılı bildirimi alırsınız. Data Factory varsayılan görünümünü açmak için Kaynağa git'i seçin.

  6. Azure Data Factory yazma ve izleme portalını başlatmak için Yazar ve İzleyici'yi seçin.

    Azure Data Factory portal overview.

Bağlı hizmetler oluşturma

Bu bölümde, veri fabrikanızda iki bağlı hizmet yazacaksınız.

  • Bir Azure depolama hesabını veri fabrikasına bağlayan Azure Depolama bağlı hizmeti. Bu depolama alanı, isteğe bağlı HDInsight kümesi tarafından kullanılır. Ayrıca kümede çalıştırılacak Hive betiğini de içerir.
  • İsteğe bağlı HDInsight bağlı hizmeti. Azure Data Factory otomatik olarak bir HDInsight kümesi oluşturur ve Hive betiğini çalıştırır. Daha sonra, küme önceden yapılandırılmış bir süre boyunca boşta kaldığında HDInsight kümesini siler.

Azure Depolama bağlı hizmeti oluşturma

  1. Başlayalım sayfasının sol bölmesinde Yazar simgesini seçin.

    Create an Azure Data Factory linked service.

  2. Pencerenin sol alt köşesinden Bağlan yonlar'ı ve ardından +Yeni'yi seçin.

    Create connections in Azure Data Factory.

  3. Yeni Bağlı Hizmet iletişim kutusunda Azure Blob Depolama'ı ve ardından Devam'ı seçin.

    Create Azure Storage linked service for Data Factory.

  4. Depolama bağlı hizmeti için aşağıdaki değerleri sağlayın:

    Özellik Değer
    Veri Akışı Adı HDIStorageLinkedService girin.
    Azure aboneliği Açılan listeden aboneliğinizi seçin.
    Depolama hesabı adı PowerShell betiğinin bir parçası olarak oluşturduğunuz Azure Depolama hesabını seçin.

    Bağlantıyı test et'i ve başarılı olursa Oluştur'u seçin.

    Provide name for Azure Storage linked service.

İsteğe bağlı bir HDInsight bağlı hizmeti oluşturma

  1. Başka bir bağlı hizmet oluşturmak için + Yeni düğmesini tekrar seçin.

  2. Yeni Bağlı Hizmet penceresinde İşlem sekmesini seçin.

  3. Azure HDInsight'ı ve ardından Devam'ı seçin.

    Create HDInsight linked service for Azure Data Factory.

  4. Yeni Bağlı Hizmet penceresinde aşağıdaki değerleri girin ve kalan değerleri varsayılan olarak bırakın:

    Özellik Değer
    Veri Akışı Adı HDInsightLinkedService girin.
    Tür İsteğe bağlı HDInsight'ı seçin.
    Azure Storage Bağlı Hizmeti HDIStorageLinkedService öğesini seçin.
    Küme türü Hadoop seçeneğini belirleyin
    Yaşam süresi HDInsight kümesinin otomatik olarak silinmeden önce kullanılabilir olmasını istediğiniz süreyi belirtin.
    Hizmet sorumlusu kimliği Önkoşulların bir parçası olarak oluşturduğunuz Microsoft Entra hizmet sorumlusunun uygulama kimliğini belirtin.
    Hizmet sorumlusu anahtarı Microsoft Entra hizmet sorumlusu için kimlik doğrulama anahtarını sağlayın.
    Küme adı ön eki Veri fabrikası tarafından oluşturulan tüm küme türlerine ön ek olarak eklenecek bir değer sağlayın.
    Abonelik Açılan listeden aboneliğinizi seçin.
    Kaynak grubu seçin Daha önce kullandığınız PowerShell betiğinin bir parçası olarak oluşturduğunuz kaynak grubunu seçin.
    İşletim sistemi türü/Küme SSH kullanıcı adı Yaygın olarak sshuserbir SSH kullanıcı adı girin.
    İşletim sistemi türü/Küme SSH parolası SSH kullanıcısı için parola belirtin
    İşletim sistemi türü/Küme kullanıcı adı Genellikle adminbir küme kullanıcı adı girin.
    İşletim sistemi türü/Küme parolası Küme kullanıcısı için bir parola girin.

    Daha sonra, Oluştur'u seçin.

    Provide values for HDInsight linked service.

İşlem hattı oluşturma

  1. + (artı) düğmesini seçip İşlem Hattı'nı seçin.

    Create a pipeline in Azure Data Factory.

  2. Etkinlikler araç kutusunda HDInsight'ı genişletin ve Hive etkinliğini işlem hattı tasarımcısının yüzeyine sürükleyin. Genel sekmesinde etkinlik için bir ad belirtin.

    Add activities to Data Factory pipeline.

  3. Hive etkinliğini seçtiğinizden emin olun, HDI Kümesi sekmesini seçin. HDInsight Bağlı Hizmeti açılan listesinden, HDInsight için daha önce oluşturduğunuz bağlı hizmeti (HDInsightLinkedService) seçin.

    Provide HDInsight cluster details for the pipeline.

  4. Betik sekmesini seçin ve aşağıdaki adımları tamamlayın:

    1. Betik Bağlı Hizmeti için açılan listeden HDI Depolama LinkedService öğesini seçin. Bu değer, daha önce oluşturduğunuz depolama bağlı hizmetidir.

    2. Dosya Yolu için Depolama Gözat'ı seçin ve örnek Hive betiğinin kullanılabildiği konuma gidin. Daha önce PowerShell betiğini çalıştırdıysanız, bu konum olmalıdır adfgetstarted/hivescripts/partitionweblogs.hql.

      Provide Hive script details for the pipeline.

    3. Gelişmiş>Parametreler'in altında öğesini seçin.Auto-fill from script Bu seçenek, Hive betiğinde çalışma zamanında değer gerektiren parametreleri arar.

    4. Değer metin kutusunda, var olan klasörü biçiminde wasbs://adfgetstarted@<StorageAccount>.blob.core.windows.net/outputfolder/ekleyin. Bu yol büyük/küçük harfe duyarlıdır. Bu yol, betiğin çıkışının depolanacağı yerdir. Depolama wasbs hesaplarında artık varsayılan olarak etkin güvenli aktarım gerektiğinden şema gereklidir.

      Provide parameters for the Hive script.

  5. İşlem hattını doğrulamak için Doğrula'yı seçin. Doğrulama penceresini kapatmak için >> (sağ ok) düğmesini seçin.

    Validate the Azure Data Factory pipeline.

  6. Son olarak, yapıtları Azure Data Factory'de yayımlamak için Tümünü Yayımla'yı seçin.

    Publish the Azure Data Factory pipeline.

İşlem hattını tetikleme

  1. Tasarımcı yüzeyindeki araç çubuğunda Tetikleyici Şimdi Tetikleyici>Ekle'yi seçin.

    Trigger the Azure Data Factory pipeline.

  2. Açılır yan çubukta Tamam'ı seçin.

İşlem hattını izleme

  1. Soldaki İzleyici sekmesine geçin. İşlem Hattı Çalıştırmaları listesinde bir işlem hattı çalıştırması görürsünüz. Durum sütununun altındaki çalıştırmanın durumuna dikkat edin.

    Monitor the Azure Data Factory pipeline.

  2. Durumu yenilemek için Yenile’yi seçin.

  3. İşlem hattıyla ilişkili etkinlik çalıştırmasını görmek için Etkinlik Çalıştırmalarını Görüntüle simgesini de seçebilirsiniz. Aşağıdaki ekran görüntüsünde, oluşturduğunuz işlem hattında yalnızca bir etkinlik olduğundan yalnızca bir etkinlik çalıştırması görürsünüz. Önceki görünüme geri dönmek için sayfanın üst kısmındaki İşlem hatları'nı seçin.

    Monitor the Azure Data Factory pipeline activity.

Çıktıyı doğrulama

  1. Çıktıyı doğrulamak için Azure portalında bu öğretici için kullandığınız depolama hesabına gidin. Aşağıdaki klasörleri veya kapsayıcıları görmeniz gerekir:

    • İşlem hattının parçası olarak çalıştırılan Hive betiğinin çıkışını içeren bir adfgerstarted/outputfolder görürsünüz.

    • Bir adfhdidatafactory-linked-service-name-timestamp<><> kapsayıcısı görürsünüz. Bu kapsayıcı, işlem hattı çalıştırmasının bir parçası olarak oluşturulan HDInsight kümesinin varsayılan depolama konumudur.

    • Azure Data Factory iş günlüklerine sahip bir adfjobs kapsayıcısı görürsünüz.

      Verify the Azure Data Factory pipeline output.

Kaynakları temizleme

İsteğe bağlı HDInsight kümesi oluşturma işleminde HDInsight kümesini açıkça silmeniz gerekmez. Küme, işlem hattını oluştururken sağladığınız yapılandırmaya göre silinir. Küme silindikten sonra bile, kümeyle ilişkili depolama hesapları varolmaya devam eder. Bu davranış, verilerinizin bozulmaması için tasarım gereğidir. Ancak, verileri kalıcı hale getirmek istemiyorsanız, oluşturduğunuz depolama hesabını silebilirsiniz.

Ya da bu öğretici için oluşturduğunuz kaynak grubunun tamamını silebilirsiniz. Bu işlem, oluşturduğunuz depolama hesabını ve Azure Data Factory'yi siler.

Kaynak grubunu silme

  1. Azure portalı üzerinde oturum açın.

  2. Sol bölmede Kaynak grupları'nı seçin.

  3. PowerShell betiğinizde oluşturduğunuz kaynak grubu adını seçin. Listede çok fazla kaynak grubu varsa filtreyi kullanın. Kaynak grubunu açar.

  4. Kaynaklar kutucuğunda, kaynak grubunu diğer projelerle paylaşmadığınız sürece varsayılan depolama hesabı ve veri fabrikası listelenir.

  5. Kaynak grubunu sil'i seçin. Bunu yaptığınızda depolama hesabı ve depolama hesabında depolanan veriler silinir.

    Azure portal delete resource group.

  6. Silme işlemini onaylamak için kaynak grubu adını girin ve sil'i seçin.

Sonraki adımlar

Bu makalede azure data factory kullanarak isteğe bağlı HDInsight kümesi oluşturmayı ve Apache Hive işlerini çalıştırmayı öğrendiniz. Özel yapılandırmayla HDInsight kümeleri oluşturmayı öğrenmek için sonraki makaleye ilerleyin.