HDInsight-fürtök létrehozása Azure Data Lake Storage Gen1 alapértelmezett tárolóként a PowerShell használatával

Megtudhatja, hogyan konfigurálhat azure HDInsight-fürtöket az Azure Data Lake Storage Gen1 Azure PowerShell alapértelmezett tárolóként. A HDInsight-fürt további tárolóként való Data Lake Storage Gen1 létrehozásával kapcsolatos utasításokért lásd: HDInsight-fürt létrehozása Data Lake Storage Gen1 további tárolóként.

Íme néhány fontos szempont a HDInsight Data Lake Storage Gen1 való használatához:

  • A HDInsight 3.5-ös és 3.6-os verziójához elérhető a Data Lake Storage Gen1 alapértelmezett tárolóként való hozzáféréssel rendelkező HDInsight-fürtök létrehozása.

  • A HDInsight Premium-fürtök esetében nem érhető el az alapértelmezett tárolóként Data Lake Storage Gen1 hozzáféréssel rendelkező HDInsight-fürtök létrehozása.

Ha úgy szeretné konfigurálni a HDInsightot, hogy a PowerShell használatával működjön Data Lake Storage Gen1, kövesse a következő öt szakaszban található utasításokat.

Előfeltételek

Megjegyzés

Javasoljuk, hogy az Azure-ral való interakcióhoz az Azure Az PowerShell-modult használja. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Az oktatóanyag megkezdése előtt győződjön meg arról, hogy megfelel a következő követelményeknek:

  • Azure-előfizetés: Lépjen az Ingyenes Azure-próbaverzió beszerzése területre.

  • Azure PowerShell 1.0-s vagy újabb verziója: Lásd: A PowerShell telepítése és konfigurálása.

  • Windows Software Development Kit (SDK): A Windows SDK telepítéséhez lépjen a Letöltések és eszközök Windows 10. Az SDK biztonsági tanúsítvány létrehozásához használható.

  • Microsoft Entra szolgáltatásnév: Ez az oktatóanyag bemutatja, hogyan hozhat létre szolgáltatásnevet Microsoft Entra ID. Szolgáltatásnév létrehozásához azonban Microsoft Entra rendszergazdának kell lennie. Ha Ön rendszergazda, kihagyhatja ezt az előfeltételt, és folytathatja az oktatóanyaggal.

    Megjegyzés

    Szolgáltatásnevet csak akkor hozhat létre, ha Ön Microsoft Entra rendszergazda. A Microsoft Entra rendszergazdájának létre kell hoznia egy szolgáltatásnevet, mielőtt hdInsight-fürtöt hozhat létre Data Lake Storage Gen1. A szolgáltatásnevet egy tanúsítvánnyal kell létrehozni, a Szolgáltatásnév létrehozása tanúsítvánnyal című cikkben leírtak szerint.

Azure Data Lake Storage Gen1-fiók létrehozása

Data Lake Storage Gen1 fiók létrehozásához tegye a következőket:

  1. Az asztalról nyisson meg egy PowerShell-ablakot, majd írja be az alábbi kódrészleteket. Amikor a rendszer arra kéri, hogy jelentkezzen be, jelentkezzen be az előfizetés rendszergazdájaként vagy tulajdonosaként.

    # 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"
    

    Megjegyzés

    Ha regisztrálja a Data Lake Storage Gen1 erőforrás-szolgáltatót, és a következőhöz hasonló hibaüzenetet kap, előfordulhat, hogy Register-AzResourceProvider : InvalidResourceNamespace: The resource namespace 'Microsoft.DataLakeStore' is invalidaz előfizetése nem lesz jóváhagyva Data Lake Storage Gen1. Az Azure-előfizetés Data Lake Storage Gen1 való engedélyezéséhez kövesse a Azure Data Lake Storage Gen1 használatának első lépéseit az Azure Portal használatával.

  2. Egy Data Lake Storage Gen1-fiók egy Azure-erőforráscsoporthoz van társítva. Először hozzon létre egy erőforráscsoportot.

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

    A következőhöz hasonló kimenetnek kell megjelennie:

    ResourceGroupName : hdiadlgrp
    Location          : eastus2
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/<subscription-id>/resourceGroups/hdiadlgrp
    
  3. Hozzon létre egy Data Lake Storage Gen1 fiókot. A megadott fióknév csak kisbetűket és számokat tartalmazhat.

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

    A következőhöz hasonló kimenetnek kell megjelennie:

    ...
    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. A Data Lake Storage Gen1 alapértelmezett tárolóként való használatához meg kell adnia egy gyökérelérési utat, amelybe a fürtspecifikus fájlok a fürt létrehozása során kerülnek másolásra. A kódrészletben a /clusters/hdiadlcluster gyökérútvonal létrehozásához használja a következő parancsmagokat:

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

Hitelesítés beállítása szerepköralapú hozzáféréshez a Data Lake Storage Gen1

Minden Azure-előfizetés egy Microsoft Entra entitáshoz van társítva. Az előfizetési erőforrásokhoz a Azure Portal vagy az Azure Resource Manager API használatával hozzáférő felhasználóknak és szolgáltatásoknak először hitelesítést kell végeznie Microsoft Entra ID. A hozzáférés az Azure-előfizetésekhez és -szolgáltatásokhoz úgy adható meg, hogy hozzárendeli őket a megfelelő szerepkörhöz egy Azure-erőforráshoz. A szolgáltatások esetében a szolgáltatásnév azonosítja a szolgáltatást Microsoft Entra ID.

Ez a szakasz bemutatja, hogyan adhat hozzáférést egy alkalmazásszolgáltatáshoz, például a HDInsighthoz egy Azure-erőforráshoz (a korábban létrehozott Data Lake Storage Gen1 fiókhoz). Ehhez hozzon létre egy szolgáltatásnevet az alkalmazáshoz, és rendeljen hozzá szerepköröket a PowerShell-lel.

Az Active Directory-hitelesítés Data Lake Storage Gen1 való beállításához hajtsa végre a következő két szakaszban ismertetett feladatokat.

Önaláírt tanúsítvány létrehozása

A szakasz lépéseinek végrehajtása előtt győződjön meg arról, hogy telepítve van a Windows SDK . Létre kell hoznia egy könyvtárat is, például a C:\mycertdir könyvtárat, ahol létrehozza a tanúsítványt.

  1. A PowerShell-ablakban lépjen arra a helyre, ahová a Windows SDK-t telepítette (általában C:\Program Files (x86)\Windows Kits\10\bin\x86), és a MakeCert segédprogrammal hozzon létre egy önaláírt tanúsítványt és egy titkos kulcsot. Az alábbi parancsokat használja:

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

    A rendszer kérni fogja a titkos kulcs jelszavának megadását. A parancs sikeres végrehajtása után a megadott tanúsítványkönyvtárban meg kell jelennie CertFile.cer és mykey.pvk fájlnak.

  2. A Pvk2Pfx segédprogrammal konvertálja a MakeCert által létrehozott .pvk és .cer fájlokat .pfx fájllá. Futtassa az alábbi parancsot:

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

    Amikor a rendszer kéri, adja meg a korábban megadott titkos kulcs jelszavát. A -po paraméterhez megadott érték a .pfx fájlhoz társított jelszó. A parancs sikeres végrehajtása után a megadott tanúsítványkönyvtárban egy CertFile.pfx fájlnak is meg kell jelennie.

Microsoft Entra ID és szolgáltatásnév létrehozása

Ebben a szakaszban létrehoz egy szolgáltatásnevet egy Microsoft Entra-alkalmazáshoz, hozzárendel egy szerepkört a szolgáltatásnévhez, és tanúsítvány megadásával hitelesíti magát szolgáltatásnévként. Ha Microsoft Entra ID szeretne létrehozni egy alkalmazást, futtassa a következő parancsokat:

  1. Illessze be a következő parancsmagokat a PowerShell-konzolablakba. Győződjön meg arról, hogy a -DisplayName tulajdonsághoz megadott érték egyedi. A -HomePage és az -IdentiferUris értékei helyőrző értékek, és nincsenek ellenőrizve.

    $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. Hozzon létre egy szolgáltatásnevet az alkalmazásazonosító használatával.

    $servicePrincipal = New-AzADServicePrincipal -ApplicationId $applicationId -Role Contributor
    
    $objectId = $servicePrincipal.Id
    
  3. Adjon hozzáférést a szolgáltatásnévnek a korábban megadott gyökérútvonal Data Lake Storage Gen1 gyökérmappájához és minden mappájához. Használja a következő parancsmagokat:

    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
    

HDInsight Linux-fürt létrehozása Data Lake Storage Gen1 alapértelmezett tárolóként

Ebben a szakaszban egy HDInsight Hadoop Linux-fürtöt hoz létre alapértelmezett tárolóként Data Lake Storage Gen1. Ebben a kiadásban a HDInsight-fürtnek és a Data Lake Storage Gen1 ugyanazon a helyen kell lennie.

  1. Kérje le az előfizetés bérlőazonosítóját, és tárolja későbbi használatra.

    $tenantID = (Get-AzContext).Tenant.TenantId
    
  2. Hozza létre a HDInsight-fürtöt a következő parancsmagok használatával:

    # 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
    

    A parancsmag sikeres befejezése után látnia kell egy kimenetet, amely felsorolja a fürt részleteit.

Tesztfeladatok futtatása a HDInsight-fürtön a Data Lake Storage Gen1 használatához

Miután konfigurált egy HDInsight-fürtöt, tesztfeladatokat futtathat rajta, hogy biztosan hozzáférhessen Data Lake Storage Gen1. Ehhez futtasson egy Hive-mintafeladatot egy olyan tábla létrehozásához, amely a fürt gyökér>-/példa-/adat-/sample.log Data Lake Storage Gen1-ben< már elérhető mintaadatokat használja.

Ebben a szakaszban egy Secure Shell- (SSH-) kapcsolatot hoz létre a létrehozott HDInsight Linux-fürttel, majd futtat egy Hive-mintalekérdezésmintát.

  1. A kapcsolat létrejötte után indítsa el a Hive parancssori felületet (CLI) a következő paranccsal:

    hive
    
  2. A cli használatával írja be a következő utasításokat a járművek nevű új tábla létrehozásához a Data Lake Storage Gen1 mintaadataival:

    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;
    

A lekérdezés kimenetének az SSH-konzolon kell megjelennie.

Megjegyzés

Az előző CREATE TABLE parancs mintaadatainak elérési útja a adl:///example/data/, ahol adl:/// a fürt gyökere található. Az oktatóanyagban megadott fürtgyökér példáját követve a parancs a következő adl://hdiadlstore.azuredatalakestore.net/clusters/hdiadlcluster: . Használhatja a rövidebb alternatívát, vagy megadhatja a fürtgyökér teljes elérési útját.

Hozzáférés Data Lake Storage Gen1 HDFS-parancsokkal

Miután konfigurálta a HDInsight-fürtöt a Data Lake Storage Gen1 használatára, használhatja a Hadoop elosztott fájlrendszer (HDFS) rendszerhéjparancsait az áruház eléréséhez.

Ebben a szakaszban SSH-kapcsolatot hoz létre a létrehozott HDInsight Linux-fürthöz, majd futtatja a HDFS-parancsokat.

A kapcsolat létrejötte után az alábbi HDFS fájlrendszer-paranccsal listázhatja az Data Lake Storage Gen1 fájlokat.

hdfs dfs -ls adl:///

Az paranccsal feltölthet hdfs dfs -put néhány fájlt Data Lake Storage Gen1, majd a paranccsal hdfs dfs -ls ellenőrizheti, hogy a fájlok feltöltése sikeresen megtörtént-e.

Lásd még