Öğretici: Azure Data Factory kullanarak HDInsight 'ta isteğe bağlı Apache Hadoop kümeleri oluşturma
Bu öğreticide, isteğe bağlı olarak Azure HDInsight 'ta Azure Data Factory kullanarak Apache Hadoop kümesi oluşturmayı öğreneceksiniz. Daha sonra Azure Data Factory ' de veri işlem hatlarını kullanarak Hive işlerini çalıştırabilir ve kümeyi silebilirsiniz. Bu öğreticinin sonuna kadar, operationalize küme oluşturma, iş çalıştırma ve küme silme işlemlerinin zamanlamaya göre yapıldığı büyük bir veri işinin nasıl yapılacağını öğrenirsiniz.
Bu öğretici aşağıdaki görevleri kapsar:
- Azure depolama hesabı oluşturma
- Azure Data Factory etkinliğini anlama
- Azure portal 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 Module yüklendi.
Bir Azure Active Directory hizmet sorumlusu. Hizmet sorumlusunu oluşturduktan sonra, bağlantılı makaledeki yönergeleri kullanarak uygulama kimliği ve kimlik doğrulama anahtarını almayı unutmayın. Bu öğreticinin ilerleyen kısımlarında bu değerlere ihtiyacınız vardır. Ayrıca, hizmet sorumlusunun aboneliğin veya kümenin oluşturulduğu kaynak grubunun katkıda bulunan rolünün bir üyesi olduğundan emin olun. Gerekli değerleri alma ve doğru rolleri atama yönergeleri için bkz. Azure Active Directory hizmet sorumlusu oluşturma.
Ön Azure nesneleri oluşturma
Bu bölümde, talep üzerine oluşturduğunuz HDInsight kümesi için kullanılacak çeşitli nesneler oluşturursunuz. Oluşturulan depolama hesabı, partitionweblogs.hql küme üzerinde çalışan bir örnek 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çinde gerekli dosyaların üzerine kopyalamak için bir Azure PowerShell betiği kullanılmaktadır. Bu bölümdeki Azure PowerShell örnek komut dosyası aşağıdaki görevleri yapar:
- Azure 'da oturum açar.
- Bir Azure Kaynak grubu oluşturur.
- Azure Depolama hesabı oluşturur.
- Depolama hesabında bir blob kapsayıcısı oluşturur
- Örnek HiveQL betiğini (partitionweblogs. HQL) blob kapsayıcısını kopyalar. Betiği adresinde bulabilirsiniz https://hditutorialdata.blob.core.windows.net/adfhiveactivity/script/partitionweblogs.hql . Örnek betik zaten başka bir genel blob kapsayıcısında kullanılabilir. Aşağıdaki PowerShell betiği, oluşturduğu Azure depolama hesabına bu dosyaların bir kopyasını oluşturur.
Depolama hesabı oluşturma ve dosyaları kopyalama
Önemli
Azure Kaynak grubu ve komut dosyası tarafından oluşturulacak Azure depolama hesabı için ad belirtin. Betik tarafından yazılan kaynak grubu adı, depolama hesabı adı ve depolama hesabı anahtarını yazın. 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ğrula
- Azure Portaloturum açın.
- Soldan tüm hizmetler > genel > kaynak grupları' na gidin.
- PowerShell betiğinizdeki oluşturduğunuz kaynak grubu adını seçin. Listelenmiş çok fazla kaynak grubunuz varsa filtreyi kullanın.
- Genel bakış görünümünden, kaynak grubunu diğer projelerle paylaşmadığınız takdirde bir kaynağı listelenmiş görürsünüz. Bu kaynak, daha önce belirttiğiniz adı taşıyan depolama hesabıdır. Depolama hesabı adını seçin.
- Kapsayıcılar kutucuğunu seçin.
- Adfgetstarted kapsayıcısını seçin. Adlı bir klasör görürsünüz
hivescripts. - Klasörünü açın ve, partitionweblogs. HQL örnek betik dosyasını içerdiğinden emin olun.
Azure Data Factory etkinliğini anlayın
Azure Data Factory , verilerin hareketini ve dönüşümünü düzenler ve otomatiklaştırır. Azure Data Factory, bir giriş veri dilimini işlemek için tam zamanında bir HDInsight Hadoop kümesi oluşturabilir ve işlem tamamlandığında kümeyi silebilir.
Azure Data Factory, veri fabrikasının bir veya daha fazla veri işlem hattı olabilir. Bir veri işlem hattının bir veya daha fazla etkinliği vardır. İki tür etkinlik vardır:
- Veri taşıma etkinlikleri. Veri taşıma etkinliklerini kullanarak bir kaynak veri deposundan hedef veri deposuna veri taşıyabilirsiniz.
- 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ın.
Bu makalede, Hive etkinliğini isteğe bağlı bir HDInsight Hadoop kümesi oluşturacak şekilde yapılandırırsınız. Etkinlik, verileri işlemek için çalıştığında şöyle olur:
An HDInsight Hadoop kümesi, dilimi işlemek için tam zamanında otomatik olarak oluşturulur.
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 yapar:
- , Başka bir tablo Hivesampleout oluşturmak için var olan tabloyu (hivesampletable) kullanır.
- Hivesampleout tablosunu özgün hivesampletable içindeki yalnızca belirli sütunlarla doldurur.
HDInsight Hadoop kümesi, işlem tamamlandıktan sonra silinir ve küme yapılandırılan süre (timeToLive ayarı) için boşta kalır. Sonraki veri dilimi, bu timeToLive boşta kalma süresi içinde işleme için kullanılabiliyorsa, dilimi işlemek için aynı küme kullanılır.
Veri fabrikası oluşturma
Azure portalında oturum açın.
Sol menüden
+ Create a resource> analiz > Data Factory' a gidin.
Yeni Data Factory kutucuğu için aşağıdaki değerleri girin veya seçin:
Özellik Değer Ad Veri Fabrikası için bir ad girin. Bu adın genel olarak benzersiz olması gerekir. Sürüm V2 adresinden ayrılın. Abonelik Azure aboneliğinizi 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 öğreticide, konum Doğu ABD olarak ayarlanır. GIT 'i etkinleştir Bu kutunun işaretini kaldırın.
Oluştur’u seçin. Bir veri fabrikası oluşturmak 2 ila 4 dakika arasında bir süre sürebilir.
Data Factory oluşturulduktan sonra Kaynağa Git düğmesine sahip bir dağıtım başarılı bildirimi alırsınız. Data Factory varsayılan görünümü açmak için Kaynağa Git ' i seçin.
Azure Data Factory yazma ve izleme portalını başlatmak için yazar & İzleyicisi ' ni seçin.
Bağlı hizmetler oluşturma
Bu bölümde, veri fabrikanızın içinde iki bağlı hizmet yazardı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ılan 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
Başlarken sayfasının sol bölmesinde Yazar simgesini seçin.
Pencerenin sol alt köşesinden Bağlantılar ' ı seçin ve ardından + Yeni' yi seçin.
Yeni bağlı hizmet Iletişim kutusunda Azure Blob depolama ' yı seçip devam' ı seçin.
Depolama bağlı hizmeti için aşağıdaki değerleri sağlayın:
Özellik Değer Ad HDIStorageLinkedServiceyazın.Azure aboneliği Açılır 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ı Sına ' yı seçin ve başarılı olursa Oluştur' u seçin.
İsteğe bağlı bir HDInsight bağlı hizmeti oluşturma
Başka bir bağlı hizmet oluşturmak için + Yeni düğmesini tekrar seçin.
Yeni bağlı hizmet penceresinde, işlem sekmesini seçin.
Azure HDInsight' ı seçin ve ardından devam' ı seçin.
Yeni bağlı hizmet penceresinde aşağıdaki değerleri girin ve geri kalanını varsayılan olarak bırakın:
Özellik Değer Ad HDInsightLinkedServiceyazın.Tür İsteğe bağlı HDInsight ' ı seçin. Azure Storage Bağlı Hizmeti HDIStorageLinkedServiceöğesini seçin.Küme türü Hadoop seçin 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 Azure Active Directory hizmet sorumlusunun uygulama KIMLIĞINI sağlayın. Hizmet sorumlusu anahtarı Azure Active Directory hizmet sorumlusu için kimlik doğrulama anahtarı sağlayın. Küme adı ön eki Veri Fabrikası tarafından oluşturulan tüm küme türlerine ön eki eklenecek bir değer sağlayın. Abonelik Açılır listeden aboneliğinizi seçin. Kaynak grubunu seçme Daha önce kullandığınız PowerShell betiğinin bir parçası olarak oluşturduğunuz kaynak grubunu seçin. İşletim sistemi türü/kümesi SSH Kullanıcı adı Genellikle bir SSH Kullanıcı adı girin sshuser.İşletim sistemi türü/kümesi SSH parolası SSH kullanıcısı için bir parola belirtin İşletim sistemi türü/küme Kullanıcı adı Genellikle bir küme Kullanıcı adı girin admin.İşletim sistemi türü/küme parolası Küme kullanıcısı için bir parola belirtin. Ardından Oluştur’u seçin.
İşlem hattı oluşturma
+(Artı) düğmesini seçin ve ardından Işlem hattı' nı seçin.
Etkinlikler araç kutusunda HDInsight' ı genişletin ve Hive etkinliğini ardışık düzen Tasarımcısı yüzeyine sürükleyin. Genel sekmesinde, etkinlik için bir ad belirtin.
Hive etkinliğinin seçili olduğundan emin olun, HDI kümesi sekmesini seçin. HDInsight bağlı hizmeti açılan listesinden, daha önce HDInsightLinkedService, HDInsight için oluşturduğunuz bağlı hizmeti seçin.
Betik sekmesini seçin ve aşağıdaki adımları uygulayın:
Betiğe bağlı hizmet için, açılan listeden HDIStorageLinkedService öğesini seçin. Bu değer, daha önce oluşturduğunuz depolama bağlı hizmetidir.
Dosya yolu Için, depolamayı inceleyin ' i seçin ve örnek Hive betiğinin kullanılabildiği konuma gidin. PowerShell betiğini daha önce çalıştırdıysanız, bu konum olmalıdır
adfgetstarted/hivescripts/partitionweblogs.hql.
Gelişmiş > Parametreler altında öğesini seçin
Auto-fill from script. Bu seçenek, Hive betiğindeki, çalışma zamanında değer gerektiren tüm parametreleri arar.Değer metin kutusunda, varolan klasörü biçiminde ekleyin
wasbs://adfgetstarted@<StorageAccount>.blob.core.windows.net/outputfolder/. Bu yol büyük/küçük harfe duyarlıdır. Bu yol, betiğin çıktısının depolanacağı yerdir.wasbsDepolama hesaplarında varsayılan olarak etkinleştirilmiş güvenli aktarım gerekli olduğundan şema gereklidir.
İşlem hattını doğrulamak için Doğrula ' yı seçin. >> Doğrulama penceresini kapatmak için (sağ ok) düğmesini seçin.
Son olarak, yapıAzure Data Factory tları yayımlamak için Tümünü Yayımla ' yı seçin.
İşlem hattını tetikleme
Tasarımcı yüzeyinde araç çubuğundan şimdi tetikleyici tetikleyicisi Ekle' yi seçin > .
Açılır taraftaki çubukta Tamam ' ı seçin.
İşlem hattını izleme
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ında çalıştırmanın durumuna dikkat edin.
Durumu yenilemek için Yenile’yi seçin.
Ardışık düzen ile 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ına doğru işlem hatları ' nı seçin.
Çıktıyı doğrulama
Çıktıyı doğrulamak için Azure portal, 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 <linked-service-name> - <timestamp> adfhdidatafactory- Container 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.
Kaynakları temizleme
İsteğe bağlı HDInsight kümesi oluşturma ile, HDInsight kümesini açıkça silmeniz gerekmez. Küme, işlem hattını oluştururken verdiğiniz yapılandırmaya göre silinir. Küme silindikten sonra bile, kümeyle ilişkilendirilen depolama hesapları var olmaya devam eder. Verilerinizi bozulmadan saklayabilmeniz için bu davranış tasarıma göre yapılır. 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 siler.
Kaynak grubunu silme
Azure Portaloturum açın.
Sol bölmedeki kaynak grupları ' nı seçin.
PowerShell betiğinizdeki oluşturduğunuz kaynak grubu adını seçin. Listelenmiş çok fazla kaynak grubunuz varsa filtreyi kullanın. Kaynak grubunu açar.
Kaynak grubunu diğer projelerle paylaşmadığınız takdirde, kaynaklar kutucuğunda, varsayılan depolama hesabı ve veri fabrikasının listelenmesi gerekir.
Kaynak grubunu sil'i seçin. Bunu yaptığınızda depolama hesabı ve depolama hesabında depolanan veriler silinir.
Silmeyi onaylamak için kaynak grubunun adını girin ve Sil' i seçin.
Sonraki adımlar
Bu makalede, isteğe bağlı HDInsight kümesi oluşturmak ve Apache Hive işleri çalıştırmak için Azure Data Factory kullanmayı öğrendiniz. Özel yapılandırmayla HDInsight kümeleri oluşturmayı öğrenmek için bir sonraki makaleye ilerleyin.