Extra opslagaccounts toevoegen aan HDInsight

Meer informatie over het gebruik van scriptacties om extra Azure Storage-accounts toe te voegen aan HDInsight. Met de stappen in dit document voegt u een opslagaccount toe aan een bestaand HDInsight-cluster. Dit artikel is van toepassing op opslagaccounts (niet het standaardclusteropslagaccount) en geen extra opslag zoals Azure Data Lake Storage Gen1 enAzure Data Lake Storage Gen2.

Belangrijk

De informatie in dit document gaat over het toevoegen van extra opslagaccounts aan een cluster nadat het is gemaakt. Zie Clusters instellen in HDInsight met Apache Hadoop, Apache Spark, Apache Kafka en meer voor meer informatie over het toevoegen van opslagaccounts tijdens het maken van clusters.

Vereisten

Uitleg

Tijdens de verwerking voert het script de volgende acties uit:

  • Als het opslagaccount al bestaat in de core-site.xml-configuratie voor het cluster, wordt het script afgesloten en worden er geen verdere acties uitgevoerd.

  • Controleert of het opslagaccount bestaat en kan worden geopend met behulp van de sleutel.

  • Versleutelt de sleutel met behulp van de clusterreferentie.

  • Voegt het opslagaccount toe aan het core-site.xml-bestand.

  • Stopt en start de Apache Oozie-, Apache Hadoop YARN-, Apache Hadoop MapReduce2- en Apache Hadoop HDFS-services opnieuw op. Door deze services te stoppen en te starten, kunnen ze het nieuwe opslagaccount gebruiken.

Waarschuwing

Het gebruik van een opslagaccount op een andere locatie dan het HDInsight-cluster wordt niet ondersteund.

Opslagaccount toevoegen

Gebruik scriptactie om de wijzigingen toe te passen met de volgende overwegingen:

Eigenschappen Weergegeven als
Bash-script-URI https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh
Knooppunttype(n) Head
Parameters ACCOUNTNAMEACCOUNTKEY-p (optioneel)
  • ACCOUNTNAME is de naam van het opslagaccount dat moet worden toegevoegd aan het HDInsight-cluster.
  • ACCOUNTKEY is de toegangssleutel voor ACCOUNTNAME.
  • -p is optioneel. Indien opgegeven, wordt de sleutel niet versleuteld en opgeslagen in het core-site.xml bestand als tekst zonder opmaak.

Verificatie

Wanneer u het HDInsight-cluster in Azure Portal bekijkt, selecteert u de vermelding Opslagaccounts onder Eigenschappen , worden er geen opslagaccounts weergegeven die via deze scriptactie zijn toegevoegd. Azure PowerShell en Azure CLI geven ook niet het extra opslagaccount weer. De opslaggegevens worden niet weergegeven omdat het script alleen de core-site.xml configuratie voor het cluster wijzigt. Deze informatie wordt niet gebruikt bij het ophalen van de clustergegevens met behulp van Azure-beheer-API's.

Als u wilt controleren of de extra opslag een van de weergegeven methoden gebruikt:

Powershell

Het script retourneert de naam(en) van het opslagaccount die zijn gekoppeld aan het opgegeven cluster. Vervang CLUSTERNAME door de werkelijke clusternaam en voer het script uit.

# Update values
$clusterName = "CLUSTERNAME"

$creds = Get-Credential -UserName "admin" -Message "Enter the cluster login credentials"

$clusterName = $clusterName.ToLower();

# getting service_config_version
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName`?fields=Clusters/desired_service_config_versions/HDFS" `
    -Credential $creds -UseBasicParsing
$respObj = ConvertFrom-Json $resp.Content

$configVersion=$respObj.Clusters.desired_service_config_versions.HDFS.service_config_version

$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations/service_config_versions?service_name=HDFS&service_config_version=$configVersion" `
    -Credential $creds
$respObj = ConvertFrom-Json $resp.Content

# extract account names
$value = ($respObj.items.configurations | Where type -EQ "core-site").properties | Get-Member -membertype properties | Where Name -Like "fs.azure.account.key.*"
foreach ($name in $value ) { $name.Name.Split(".")[4]}

Apache Ambari

  1. Navigeer in een webbrowser naar https://CLUSTERNAME.azurehdinsight.net, waarbij CLUSTERNAME de naam van uw cluster is.

  2. Navigeer naar HDFS>Configs>Advanced>Custom Core-site.

  3. Bekijk de sleutels die beginnen met fs.azure.account.key. De accountnaam maakt deel uit van de sleutel, zoals te zien is in deze voorbeeldafbeelding:

    verification through Apache Ambari.

Opslagaccount verwijderen

  1. Navigeer in een webbrowser naar https://CLUSTERNAME.azurehdinsight.net, waarbij CLUSTERNAME de naam van uw cluster is.

  2. Navigeer naar HDFS>Configs>Advanced>Custom Core-site.

  3. Verwijder de volgende sleutels:

    • fs.azure.account.key.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net
    • fs.azure.account.keyprovider.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net

Nadat u deze sleutels hebt verwijderd en de configuratie hebt opgeslagen, moet u Oozie, Yarn, MapReduce2, HDFS en Hive één voor één opnieuw starten.

Bekende problemen

Opslagfirewall

Als u ervoor kiest om uw opslagaccount te beveiligen met de beperkingen voor firewalls en virtuele netwerken voor geselecteerde netwerken, moet u de uitzondering Vertrouwde Microsoft-services toestaan zodat HDInsight toegang heeft tot uw opslagaccount.

Kan geen toegang krijgen tot opslag na het wijzigen van de sleutel

Als u de sleutel voor een opslagaccount wijzigt, heeft HDInsight geen toegang meer tot het opslagaccount. HDInsight maakt gebruik van een in de cache opgeslagen kopie van de sleutel in de core-site.xml voor het cluster. Deze kopie in de cache moet worden bijgewerkt zodat deze overeenkomt met de nieuwe sleutel.

Als u de scriptactie opnieuw uitvoert, wordt de sleutel niet bijgewerkt, omdat het script controleert of er al een vermelding voor het opslagaccount bestaat. Als er al een vermelding bestaat, worden er geen wijzigingen aangebracht.

Dit probleem omzeilen:

  • Zie Toegangssleutels voor opslagaccounts bijwerken voor het roteren van de toegangssleutels.

  • U kunt ook het opslagaccount verwijderen en vervolgens het opslagaccount opnieuw toevoegen.

Volgende stappen

U hebt geleerd hoe u extra opslagaccounts toevoegt aan een bestaand HDInsight-cluster. Zie HDInsight-clusters op basis van Linux aanpassen met behulp van scriptactie voor meer informatie over scriptacties