Aracılığıyla paylaş


PowerShell kullanarak varsayılan depolama alanı olarak Azure Data Lake Storage 1. Nesil ile HDInsight kümeleri oluşturma

Azure HDInsight kümelerini varsayılan depolama alanı olarak Azure Data Lake Storage 1. Nesil ile yapılandırmak için Azure PowerShell kullanmayı öğrenin. Ek depolama alanı olarak Data Lake Storage 1. Nesil ile HDInsight kümesi oluşturma yönergeleri için bkz. Ek depolama alanı olarak Data Lake Storage 1. Nesil ile HDInsight kümesi oluşturma.

HDInsight'ı Data Lake Storage 1. Nesil ile kullanmak için dikkat edilmesi gereken bazı önemli noktalar şunlardır:

  • Varsayılan depolama alanı olarak Data Lake Storage 1. Nesil erişimi olan HDInsight kümeleri oluşturma seçeneği HDInsight sürüm 3.5 ve 3.6 için kullanılabilir.

  • Varsayılan depolama alanı olarak Data Lake Storage 1. Nesil erişimi olan HDInsight kümeleri oluşturma seçeneği HDInsight Premium kümelerinde kullanılamaz.

HDInsight'ı PowerShell kullanarak Data Lake Storage 1. Nesil çalışacak şekilde yapılandırmak için sonraki beş bölümdeki yönergeleri izleyin.

Önkoşullar

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Bu öğreticiye başlamadan önce aşağıdaki gereksinimleri karşıladığınızdan emin olun:

  • Azure aboneliği: Azure ücretsiz deneme sürümünü edinin bölümüne gidin.

  • Azure PowerShell 1.0 veya üzeri: Bkz. PowerShell'i yükleme ve yapılandırma.

  • Windows Yazılım Geliştirme Seti (SDK):Windows SDK'yı yüklemek için İndirmeler ve Windows 10 araçları'na gidin. SDK, bir güvenlik sertifikası oluşturmak için kullanılır.

  • Microsoft Entra hizmet sorumlusu: Bu öğreticide, Microsoft Entra ID'da hizmet sorumlusu oluşturma açıklanmaktadır. Ancak, hizmet sorumlusu oluşturmak için Microsoft Entra yöneticisi olmanız gerekir. Yöneticiyseniz bu önkoşulu atlayabilir ve öğreticiye devam edebilirsiniz.

    Not

    Hizmet sorumlusunu yalnızca Microsoft Entra yöneticisiyseniz oluşturabilirsiniz. Data Lake Storage 1. Nesil ile HDInsight kümesi oluşturabilmeniz için önce Microsoft Entra yöneticinizin bir hizmet sorumlusu oluşturması gerekir. Hizmet sorumlusu, Sertifika ile hizmet sorumlusu oluşturma bölümünde açıklandığı gibi bir sertifikayla oluşturulmalıdır.

Azure Data Lake Storage 1. Nesil hesabı oluşturma

Data Lake Storage 1. Nesil hesabı oluşturmak için aşağıdakileri yapın:

  1. Masaüstünüzden bir PowerShell penceresi açın ve aşağıdaki kod parçacıklarını girin. Oturum açmanız istendiğinde abonelik yöneticilerinden veya sahiplerinden biri olarak oturum açın.

    # Sign in to your Azure account
    Connect-AzAccount
    
    # List all the subscriptions associated to your account
    Get-AzSubscription
    
    # Select a subscription
    Set-AzContext -SubscriptionId <subscription ID>
    
    # Register for Data Lake Storage Gen1
    Register-AzResourceProvider -ProviderNamespace "Microsoft.DataLakeStore"
    

    Not

    Data Lake Storage 1. Nesil kaynak sağlayıcısını kaydeder ve benzeri Register-AzResourceProvider : InvalidResourceNamespace: The resource namespace 'Microsoft.DataLakeStore' is invalidbir hata alırsanız aboneliğiniz Data Lake Storage 1. Nesil için onaylanmayabilir. Azure aboneliğinizi Data Lake Storage 1. Nesil etkinleştirmek için Azure portal kullanarak Azure Data Lake Storage 1. Nesil'i kullanmaya başlama başlığı altında yer alan yönergeleri izleyin.

  2. Data Lake Storage 1. Nesil hesabı bir Azure kaynak grubuyla ilişkilendirilir. Başlangıç olarak bir kaynak grubu oluşturun.

    $resourceGroupName = "<your new resource group name>"
    New-AzResourceGroup -Name $resourceGroupName -Location "East US 2"
    

    Şunun gibi bir çıktı görmeniz gerekir:

    ResourceGroupName : hdiadlgrp
    Location          : eastus2
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/<subscription-id>/resourceGroups/hdiadlgrp
    
  3. bir Data Lake Storage 1. Nesil hesabı oluşturun. Belirttiğiniz hesap adı yalnızca küçük harf ve sayı içermelidir.

    $dataLakeStorageGen1Name = "<your new Data Lake Storage Gen1 name>"
    New-AzDataLakeStoreAccount -ResourceGroupName $resourceGroupName -Name $dataLakeStorageGen1Name -Location "East US 2"
    

    Aşağıdaki gibi bir çıktı görmeniz gerekir:

    ...
    ProvisioningState           : Succeeded
    State                       : Active
    CreationTime                : 5/5/2017 10:53:56 PM
    EncryptionState             : Enabled
    ...
    LastModifiedTime            : 5/5/2017 10:53:56 PM
    Endpoint                    : hdiadlstore.azuredatalakestore.net
    DefaultGroup                :
    Id                          : /subscriptions/<subscription-id>/resourceGroups/hdiadlgrp/providers/Microsoft.DataLakeStore/accounts/hdiadlstore
    Name                        : hdiadlstore
    Type                        : Microsoft.DataLakeStore/accounts
    Location                    : East US 2
    Tags                        : {}
    
  4. Data Lake Storage 1. Nesil varsayılan depolama alanı olarak kullanmak için küme oluşturma sırasında kümeye özgü dosyaların kopyalandığı bir kök yol belirtmeniz gerekir. Kod parçacığında /clusters/hdiadlcluster olan bir kök yol oluşturmak için aşağıdaki cmdlet'leri kullanın:

    $myrootdir = "/"
    New-AzDataLakeStoreItem -Folder -AccountName $dataLakeStorageGen1Name -Path $myrootdir/clusters/hdiadlcluster
    

Data Lake Storage 1. Nesil rol tabanlı erişim için kimlik doğrulamasını ayarlama

Her Azure aboneliği bir Microsoft Entra varlığıyla ilişkilendirilir. Azure portal veya Azure Resource Manager API'sini kullanarak abonelik kaynaklarına erişen kullanıcıların ve hizmetlerin önce Microsoft Entra ID kimlik doğrulaması yapması gerekir. Azure aboneliklerine ve hizmetlerine bir Azure kaynağında uygun rol atanarak erişim verilir. Hizmetler için hizmet sorumlusu hizmeti Microsoft Entra ID tanımlar.

Bu bölümde HDInsight gibi bir uygulama hizmetine Azure kaynağına (daha önce oluşturduğunuz Data Lake Storage 1. Nesil hesabı) erişim verme adımları gösterilmektedir. Bunu yapmak için uygulama için bir hizmet sorumlusu oluşturup PowerShell aracılığıyla bu sorumluya roller atayabilirsiniz.

Data Lake Storage 1. Nesil için Active Directory kimlik doğrulamasını ayarlamak için aşağıdaki iki bölümdeki görevleri gerçekleştirin.

Otomatik olarak imzalanan sertifika oluşturma

Bu bölümdeki adımlara devam etmeden önce Windows SDK'sının yüklü olduğundan emin olun. Sertifikayı oluşturduğunuz C:\mycertdir gibi bir dizin de oluşturmuş olmanız gerekir.

  1. PowerShell penceresinden, Windows SDK'yı yüklediğiniz konuma gidin (genellikle, C:\Program Files (x86)\Windows Kits\10\bin\x86) ve otomatik olarak imzalanan bir sertifika ve özel anahtar oluşturmak için MakeCert yardımcı programını kullanın. Aşağıdaki komutları kullanın:

    $certificateFileDir = "<my certificate directory>"
    cd $certificateFileDir
    
    makecert -sv mykey.pvk -n "cn=HDI-ADL-SP" CertFile.cer -r -len 2048
    

    Özel anahtar parolasını girmeniz istenir. Komut başarıyla yürütüldükten sonra, belirttiğiniz sertifika dizininde CertFile.cer ve mykey.pvk dosyasını görmeniz gerekir.

  2. MakeCert'in oluşturduğu .pvk ve .cer dosyalarını .pfx dosyasına dönüştürmek için Pvk2Pfx yardımcı programını kullanın. Şu komutu çalıştırın:

    pvk2pfx -pvk mykey.pvk -spc CertFile.cer -pfx CertFile.pfx -po <password>
    

    İstendiğinde, daha önce belirttiğiniz özel anahtar parolasını girin. -po parametresi için belirttiğiniz değer, .pfx dosyasıyla ilişkilendirilmiş paroladır. Komut başarıyla tamamlandıktan sonra, belirttiğiniz sertifika dizininde bir CertFile.pfx de görmeniz gerekir.

Microsoft Entra ID ve hizmet sorumlusu oluşturma

Bu bölümde, bir Microsoft Entra uygulaması için hizmet sorumlusu oluşturur, hizmet sorumlusuna bir rol atar ve bir sertifika sağlayarak hizmet sorumlusu olarak kimlik doğrulaması yaparsınız. Microsoft Entra ID'de uygulama oluşturmak için aşağıdaki komutları çalıştırın:

  1. Aşağıdaki cmdlet'leri PowerShell konsol penceresine yapıştırın. -DisplayName özelliği için belirttiğiniz değerin benzersiz olduğundan emin olun. -HomePage ve -IdentiferUris değerleri yer tutucu değerlerdir ve doğrulanmaz.

    $certificateFilePath = "$certificateFileDir\CertFile.pfx"
    
    $password = Read-Host -Prompt "Enter the password" # This is the password you specified for the .pfx file
    
    $certificatePFX = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($certificateFilePath, $password)
    
    $rawCertificateData = $certificatePFX.GetRawCertData()
    
    $credential = [System.Convert]::ToBase64String($rawCertificateData)
    
    $application = New-AzADApplication `
        -DisplayName "HDIADL" `
        -HomePage "https://contoso.com" `
        -IdentifierUris "https://contoso.com" `
        -CertValue $credential  `
        -StartDate $certificatePFX.NotBefore  `
        -EndDate $certificatePFX.NotAfter
    
    $applicationId = $application.ApplicationId
    
  2. Uygulama kimliğini kullanarak bir hizmet sorumlusu oluşturun.

    $servicePrincipal = New-AzADServicePrincipal -ApplicationId $applicationId -Role Contributor
    
    $objectId = $servicePrincipal.Id
    
  3. Hizmet sorumlusuna Data Lake Storage 1. Nesil köküne ve daha önce belirttiğiniz kök yoldaki tüm klasörlere erişim verin. Aşağıdaki cmdlet'leri kullanın:

    Set-AzDataLakeStoreItemAclEntry -AccountName $dataLakeStorageGen1Name -Path / -AceType User -Id $objectId -Permissions All
    Set-AzDataLakeStoreItemAclEntry -AccountName $dataLakeStorageGen1Name -Path /clusters -AceType User -Id $objectId -Permissions All
    Set-AzDataLakeStoreItemAclEntry -AccountName $dataLakeStorageGen1Name -Path /clusters/hdiadlcluster -AceType User -Id $objectId -Permissions All
    

Varsayılan depolama alanı olarak Data Lake Storage 1. Nesil ile HDInsight Linux kümesi oluşturma

Bu bölümde, varsayılan depolama alanı olarak Data Lake Storage 1. Nesil olan bir HDInsight Hadoop Linux kümesi oluşturacaksınız. Bu sürüm için HDInsight kümesi ve Data Lake Storage 1. Nesil aynı konumda olmalıdır.

  1. Abonelik kiracı kimliğini alın ve daha sonra kullanmak üzere depolayın.

    $tenantID = (Get-AzContext).Tenant.TenantId
    
  2. Aşağıdaki cmdlet'leri kullanarak HDInsight kümesini oluşturun:

    # Set these variables
    
    $location = "East US 2"
    $storageAccountName = $dataLakeStorageGen1Name    # Data Lake Storage Gen1 account name
        $storageRootPath = "<Storage root path you specified earlier>"     # e.g. /clusters/hdiadlcluster
        $clusterName = "<unique cluster name>"
    $clusterNodes = <ClusterSizeInNodes>            # The number of nodes in the HDInsight cluster
    $httpCredentials = Get-Credential
    $sshCredentials = Get-Credential
    
    New-AzHDInsightCluster `
           -ClusterType Hadoop `
           -OSType Linux `
           -ClusterSizeInNodes $clusterNodes `
           -ResourceGroupName $resourceGroupName `
           -ClusterName $clusterName `
           -HttpCredential $httpCredentials `
           -Location $location `
           -DefaultStorageAccountType AzureDataLakeStore `
           -DefaultStorageAccountName "$storageAccountName.azuredatalakestore.net" `
           -DefaultStorageRootPath $storageRootPath `
           -Version "3.6" `
           -SshCredential $sshCredentials `
           -AadTenantId $tenantId `
           -ObjectId $objectId `
           -CertificateFilePath $certificateFilePath `
           -CertificatePassword $password
    

    Cmdlet başarıyla tamamlandıktan sonra küme ayrıntılarını listeleyen bir çıkış görmeniz gerekir.

Data Lake Storage 1. Nesil kullanmak için HDInsight kümesinde test işleri çalıştırma

HDInsight kümesini yapılandırdıktan sonra, Data Lake Storage 1. Nesil erişebildiğinden emin olmak için üzerinde test işleri çalıştırabilirsiniz. Bunu yapmak için örnek bir Hive işi çalıştırarak küme kökünde>/example/data/sample.log Data Lake Storage 1. Nesil'da< zaten kullanılabilir olan örnek verileri kullanan bir tablo oluşturun.

Bu bölümde, oluşturduğunuz HDInsight Linux kümesine bir Secure Shell (SSH) bağlantısı oluşturacak ve ardından örnek bir Hive sorgusu çalıştıracaksınız.

  1. Bağlantıyı yaptıktan sonra, aşağıdaki komutu kullanarak Hive komut satırı arabirimini (CLI) başlatın:

    hive
    
  2. Data Lake Storage 1. Nesil'de örnek verileri kullanarak araçlar adlı yeni bir tablo oluşturmak üzere aşağıdaki deyimleri girmek için CLI'yi kullanın:

    DROP TABLE log4jLogs;
        CREATE EXTERNAL TABLE log4jLogs (t1 string, t2 string, t3 string, t4 string, t5 string, t6 string, t7 string)
        ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
        STORED AS TEXTFILE LOCATION 'adl:///example/data/';
        SELECT t4 AS sev, COUNT(*) AS count FROM log4jLogs WHERE t4 = '[ERROR]' AND INPUT__FILE__NAME LIKE '%.log' GROUP BY t4;
    

SSH konsolunda sorgu çıkışını görmeniz gerekir.

Not

Yukarıdaki CREATE TABLE komutundaki örnek verilerin yolu, adl:///example/data/burada adl:/// küme köküdür. Bu öğreticide belirtilen küme kökü örneğinden sonra komutu şeklindedir adl://hdiadlstore.azuredatalakestore.net/clusters/hdiadlcluster. Daha kısa alternatifi kullanabilir veya küme köküne tam yolu sağlayabilirsiniz.

HDFS komutlarını kullanarak Data Lake Storage 1. Nesil erişme

HDInsight kümesini Data Lake Storage 1. Nesil kullanacak şekilde yapılandırdıktan sonra, depoya erişmek için Hadoop Dağıtılmış Dosya Sistemi (HDFS) kabuk komutlarını kullanabilirsiniz.

Bu bölümde, oluşturduğunuz HDInsight Linux kümesine bir SSH bağlantısı oluşturacak ve ardından HDFS komutlarını çalıştıracaksınız.

Bağlantıyı yaptıktan sonra, aşağıdaki HDFS dosya sistemi komutunu kullanarak Data Lake Storage 1. Nesil içindeki dosyaları listeleyin.

hdfs dfs -ls adl:///

Komutunu kullanarak hdfs dfs -put bazı dosyaları Data Lake Storage 1. Nesil yükleyebilir ve ardından dosyaları başarıyla karşıya yükleyip yüklemediğini doğrulamak için komutunu kullanabilirsinizhdfs dfs -ls.

Ayrıca bkz.