HDInsight-fürt létrehozása Azure PowerShell használatával Azure Data Lake Storage Gen1-zel (további tárolóként)
Megtudhatja, hogyan konfigurálhat további tárolóként egy HDInsight-fürtöt Azure PowerShell Azure Data Lake Storage Gen1 használatával. A HDInsight-fürt Data Lake Storage Gen1 alapértelmezett tárolóként való létrehozásával kapcsolatos utasításokért lásd: HDInsight-fürt létrehozása Data Lake Storage Gen1 alapértelmezett tárolóként.
Megjegyzés
Ha Data Lake Storage Gen1 fog további tárolóként használni a HDInsight-fürthöz, határozottan javasoljuk, hogy ezt a fürt létrehozásakor tegye meg az ebben a cikkben leírtak szerint. A Data Lake Storage Gen1 hozzáadása további tárolóként egy meglévő HDInsight-fürthöz bonyolult folyamat, és hibákra hajlamos.
A támogatott fürttípusok esetében a Data Lake Storage Gen1 használható alapértelmezett tárfiókként vagy további tárfiókként. Ha Data Lake Storage Gen1 további tárolóként használják, a fürtök alapértelmezett tárfiókja továbbra is az Azure Blob Storage (WASB) lesz, és a fürthöz kapcsolódó fájlok (például naplók stb.) továbbra is az alapértelmezett tárolóba lesznek írva, míg a feldolgozni kívánt adatok tárolhatók egy Data Lake Storage Gen1. A Data Lake Storage Gen1 további tárfiókként való használata nem befolyásolja a teljesítményt vagy a fürtből a tárolóba való olvasás/írás képességét.
A DATA LAKE STORAGE GEN1 használata a HDInsight-fürttárolóhoz
Íme néhány fontos szempont a HDInsight Data Lake Storage Gen1 való használatához:
- Lehetőség a Data Lake Storage Gen1 hozzáféréssel rendelkező HDInsight-fürtök létrehozására, mivel további tárterület áll rendelkezésre a HDInsight 3.2-s, 3.4-ös, 3.5-ös és 3.6-os verzióihoz.
A HDInsight powershell-lel való Data Lake Storage Gen1 való használatának konfigurálása a következő lépésekből áll:
- Data Lake Storage Gen1-fiók létrehozása
- Hitelesítés beállítása szerepköralapú hozzáféréshez a Data Lake Storage Gen1
- HDInsight-fürt létrehozása hitelesítéssel a Data Lake Storage Gen1
- Tesztfeladat futtatása a fürtön
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 elkezdéséhez az alábbiakkal kell rendelkeznie:
Egy Azure-előfizetés. Lásd: Ingyenes Azure-fiók létrehozása.
Az Azure PowerShell 1.0-s vagy újabb verziója. Lásd: How to install and configure Azure PowerShell (Az Azure PowerShell telepítése és konfigurálása).
Windows SDK. A készletet innen telepítheti. Ezzel biztonsági tanúsítványt hozhat létre.
Microsoft Entra szolgáltatásnév. Az oktatóanyag lépései bemutatja, hogyan hozhat létre szolgáltatásnevet Microsoft Entra ID. A szolgáltatásnév létrehozásához azonban Microsoft Entra rendszergazdának kell lennie. Ha Ön Microsoft Entra rendszergazda, kihagyhatja ezt az előfeltételt, és folytathatja az oktatóanyaggal.
Ha Ön nem Microsoft Entra rendszergazda, nem fogja tudni végrehajtani a szolgáltatásnév létrehozásához szükséges lépéseket. Ilyen esetben a Microsoft Entra rendszergazdának először létre kell hoznia egy szolgáltatásnevet, mielőtt létrehozhat egy HDInsight-fürtöt Data Lake Storage Gen1. Emellett a szolgáltatásnevet tanúsítvány használatával kell létrehozni, az egyszerű szolgáltatás létrehozása tanúsítvánnyal című cikkben leírtak szerint.
Data Lake Storage Gen1-fiók létrehozása
Kövesse az alábbi lépéseket egy Data Lake Storage Gen1 fiók létrehozásához.
Nyisson meg egy új Azure PowerShell ablakot az asztalról, és írja be a következő kódrészletet. Amikor a rendszer kéri a bejelentkezést, győződjön meg arról, hogy az előfizetés rendszergazdájaként/tulajdonosaként jelentkezik be:
# Log 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 a Data Lake Storage Gen1 erőforrás-szolgáltató regisztrációjához
Register-AzResourceProvider : InvalidResourceNamespace: The resource namespace 'Microsoft.DataLakeStore' is invalid
hasonló hibaüzenetet kap, lehetséges, hogy az előfizetése nincs jóváhagyva Data Lake Storage Gen1. Ezeket az utasításokat követve győződjön meg arról, hogy engedélyezi az Azure-előfizetését Data Lake Storage Gen1.A Data Lake Storage Gen1 rendelkező tárfiók egy Azure-erőforráscsoporthoz van társítva. Először hozzon létre egy Azure-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
Hozzon létre egy tárfiókot Data Lake Storage Gen1. A megadott fióknév csak kisbetűket és számokat tartalmazhat.
$dataLakeStorageGen1Name = "<your new storage account with 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 : {}
Töltsön fel néhány mintaadatot a Data Lake Storage Gen1. Ezt a cikk későbbi részében használjuk annak ellenőrzésére, hogy az adatok elérhetők-e egy HDInsight-fürtből. Ha feltölthető mintaadatokra van szüksége, használhatja az Azure Data Lake Git-tárában található Ambulance Data mappát.
$myrootdir = "/" Import-AzDataLakeStoreItem -AccountName $dataLakeStorageGen1Name -Path "C:\<path to data>\vehicle1_09142014.csv" -Destination $myrootdir\vehicle1_09142014.csv
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 ID van társítva. Az előfizetés erőforrásaihoz 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 ezzel a Microsoft Entra ID kell hitelesíteni magukat. 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 a 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 rendelkező tárfiókhoz), ha létrehoz egy szolgáltatásnevet az alkalmazáshoz, és szerepköröket rendel hozzá a Azure PowerShell keresztül.
Az Active Directory-hitelesítés Data Lake Storage Gen1 beállításához a következő feladatokat kell elvégeznie.
- Önaláírt tanúsítvány létrehozása
- Alkalmazás létrehozása Microsoft Entra ID és szolgáltatásnévben
Ö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 . Olyan könyvtárat is létre kell hoznia, mint például a C:\mycertdir, ahol a tanúsítvány létrejön.
A PowerShell-ablakban keresse meg azt a helyet, ahová a Windows SDK-t telepítette (általában a
C:\Program Files (x86)\Windows Kits\10\bin\x86
MakeCert segédprogrammal hozzon létre egy önaláírt tanúsítványt és egy titkos kulcsot). Használja az alábbi parancsokat.$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 egy CertFile.cer és mykey.pvk értéknek kell megjelennie a megadott tanúsítványkönyvtárban.
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 befejezése 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 elvégezheti a lépéseket egy szolgáltatásnév létrehozásához egy Microsoft Entra-alkalmazáshoz, szerepkört rendelhet hozzá a szolgáltatásnévhez, és hitelesítést végezhet szolgáltatásnévként egy tanúsítvány megadásával. Futtassa az alábbi parancsokat egy alkalmazás létrehozásához Microsoft Entra ID.
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. Emellett 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
Hozzon létre egy szolgáltatásnevet az alkalmazásazonosító használatával.
$servicePrincipal = New-AzADServicePrincipal -ApplicationId $applicationId -Role Contributor $objectId = $servicePrincipal.Id
Adjon hozzáférést a szolgáltatásnévnek a Data Lake Storage Gen1 mappához és a HDInsight-fürtből elérni kívánt fájlhoz. Az alábbi kódrészlet hozzáférést biztosít a tárfiók gyökeréhez a Data Lake Storage Gen1 (ahol a mintaadatfájlt kimásolta) és magához a fájlhoz.
Set-AzDataLakeStoreItemAclEntry -AccountName $dataLakeStorageGen1Name -Path / -AceType User -Id $objectId -Permissions All Set-AzDataLakeStoreItemAclEntry -AccountName $dataLakeStorageGen1Name -Path /vehicle1_09142014.csv -AceType User -Id $objectId -Permissions All
HDInsight Linux-fürt létrehozása további tárolóként Data Lake Storage Gen1
Ebben a szakaszban létrehozunk egy HDInsight Hadoop Linux-fürtöt, amely további tárolóként Data Lake Storage Gen1. Ebben a kiadásban a DATA LAKE STORAGE GEN1 rendelkező HDInsight-fürtnek és tárfióknak ugyanazon a helyen kell lennie.
Kezdje az előfizetés bérlőazonosítójának beolvasásával. Később szüksége lesz rá.
$tenantID = (Get-AzContext).Tenant.TenantId
Ebben a kiadásban a Hadoop-fürtök esetében Data Lake Storage Gen1 csak a fürt további tárolójaként használható. Az alapértelmezett tároló továbbra is az Azure Blob Storage (WASB) lesz. Ezért először létrehozzuk a fürthöz szükséges tárfiókot és tárolókat.
# Create an Azure storage account $location = "East US 2" $storageAccountName = "<StorageAccountName>" # Provide a Storage account name New-AzStorageAccount -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -Location $location -Type Standard_GRS # Create an Azure Blob Storage container $containerName = "<ContainerName>" # Provide a container name $storageAccountKey = (Get-AzStorageAccountKey -Name $storageAccountName -ResourceGroupName $resourceGroupName)[0].Value $destContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey New-AzStorageContainer -Name $containerName -Context $destContext
Hozza létre a HDInsight-fürtöt. Használja az alábbi parancsmagokat.
# Set these variables $clusterName = $containerName # As a best practice, have the same name for the cluster and container $clusterNodes = <ClusterSizeInNodes> # The number of nodes in the HDInsight cluster $httpCredentials = Get-Credential $sshCredentials = Get-Credential New-AzHDInsightCluster -ClusterName $clusterName -ResourceGroupName $resourceGroupName -HttpCredential $httpCredentials -Location $location -DefaultStorageAccountName "$storageAccountName.blob.core.windows.net" -DefaultStorageAccountKey $storageAccountKey -DefaultStorageContainer $containerName -ClusterSizeInNodes $clusterNodes -ClusterType Hadoop -Version "3.4" -OSType Linux -SshCredential $sshCredentials -ObjectID $objectId -AadTenantId $tenantID -CertificateFilePath $certificateFilePath -CertificatePassword $password
Miután a parancsmag sikeresen befejeződött, 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
Miután konfigurált egy HDInsight-fürtöt, tesztfeladatokat futtathat a fürtön annak teszteléséhez, hogy a HDInsight-fürt hozzáfér-e Data Lake Storage Gen1. Ehhez futtatunk egy Hive-mintafeladatot, amely létrehoz egy táblát a tárfiókba korábban feltöltött mintaadatokkal Data Lake Storage Gen1.
Ebben a szakaszban SSH-kapcsolatot fog létrehozni a létrehozott HDInsight Linux-fürtben, és futtatja a Hive-mintalekérdezéseket.
- Ha Windows-ügyfelet használ az SSH-hoz a fürtbe, tekintse meg az SSH használata a HDInsighton futó Linux-alapú Hadooppal Windowsról című témakört.
- Ha Linux-ügyfelet használ az SSH-hoz a fürtbe, lásd: SSH használata Linux-alapú Hadooppal a HDInsighton Linuxról
A csatlakozás után indítsa el a Hive CLI-t a következő paranccsal:
hive
A parancssori felület használatával adja meg a következő utasításokat, hogy létrehozhasson egy járművek nevű új táblát a Data Lake Storage Gen1 mintaadataival:
DROP TABLE vehicles; CREATE EXTERNAL TABLE vehicles (str string) LOCATION 'adl://<mydatalakestoragegen1>.azuredatalakestore.net:443/'; SELECT * FROM vehicles LIMIT 10;
A következőhöz hasonló kimenetnek kell megjelennie:
1,1,2014-09-14 00:00:03,46.81006,-92.08174,51,S,1 1,2,2014-09-14 00:00:06,46.81006,-92.08174,13,NE,1 1,3,2014-09-14 00:00:09,46.81006,-92.08174,48,NE,1 1,4,2014-09-14 00:00:12,46.81006,-92.08174,30,W,1 1,5,2014-09-14 00:00:15,46.81006,-92.08174,47,S,1 1,6,2014-09-14 00:00:18,46.81006,-92.08174,9,S,1 1,7,2014-09-14 00:00:21,46.81006,-92.08174,53,N,1 1,8,2014-09-14 00:00:24,46.81006,-92.08174,63,SW,1 1,9,2014-09-14 00:00:27,46.81006,-92.08174,4,NE,1 1,10,2014-09-14 00:00:30,46.81006,-92.08174,31,N,1
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, a HDFS-felület parancsaival hozzáférhet az áruházhoz.
Ebben a szakaszban SSH-kapcsolatot fog létesíteni a létrehozott HDInsight Linux-fürtben, és futtatja a HDFS-parancsokat.
- Ha Windows-ügyfelet használ az SSH-hoz a fürtbe, tekintse meg az SSH használata a HDInsighton futó Linux-alapú Hadooppal Windowsról című témakört.
- Ha Linux-ügyfelet használ az SSH-hoz a fürtbe, lásd: SSH használata Linux-alapú Hadooppal a HDInsighton Linuxról
A csatlakozás után a következő HDFS-fájlrendszer paranccsal listázhatja a tárfiókban lévő fájlokat a Data Lake Storage Gen1.
hdfs dfs -ls adl://<storage account with Data Lake Storage Gen1 name>.azuredatalakestore.net:443/
Ennek a fájlnak az Data Lake Storage Gen1 korábban feltöltött fájlnak kell szerepelnie.
15/09/17 21:41:15 INFO web.CaboWebHdfsFileSystem: Replacing original urlConnectionFactory with org.apache.hadoop.hdfs.web.URLConnectionFactory@21a728d6
Found 1 items
-rwxrwxrwx 0 NotSupportYet NotSupportYet 671388 2015-09-16 22:16 adl://mydatalakestoragegen1.azuredatalakestore.net:443/mynewfolder
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.