Ajouter des comptes de stockage supplémentaires à HDInsight
Découvrez comment utiliser des actions de script pour ajouter des comptes Stockage Azure supplémentaires dans HDInsight. Les étapes décrites dans ce document permettent d’ajouter un compte de stockage à un cluster HDInsight existant. Cet article s’applique aux comptes de stockage (différents du compte de stockage en cluster par défaut) et pas à un stockage supplémentaire comme Azure Data Lake Storage Gen2
.
Important
Les informations contenues dans ce document portent sur l’ajout d’un ou de plusieurs comptes de stockage supplémentaires à un cluster après sa création. Pour plus d’informations sur l’ajout de comptes de stockage lors de la création du cluster, consultez Configurer des clusters dans HDInsight avec Apache Hadoop, Apache Spark, Apache Kafka, etc.
Prérequis
- Un cluster Hadoop sur HDInsight. Consultez Bien démarrer avec HDInsight sur Linux.
- Nom et clé du compte de stockage. Consultez Gérer les clés d’accès au compte de stockage.
- Si vous utilisez PowerShell, vous avez besoin du module AZ. Consultez Vue d’ensemble d’Azure PowerShell.
Fonctionnement
Pendant le traitement, le script effectue les opérations suivantes :
Si le compte de stockage existe déjà dans la configuration core-site.xml du cluster, le script s’arrête et aucune action supplémentaire n’est effectuée.
Il vérifie que le compte de stockage existe et est accessible à l’aide de la clé.
Il chiffre la clé à l’aide des informations d’identification du cluster.
Il ajoute le compte de stockage dans le fichier core-site.xml.
Arrête et redémarre les services Apache Oozie, Apache Hadoop YARN, Apache Hadoop MapReduce2 et Apache Hadoop HDFS. L’arrêt et le redémarrage de ces services leur permettent d’utiliser le nouveau compte de stockage.
Avertissement
L’utilisation d’un compte de stockage dans un autre emplacement que le cluster HDInsight n’est pas prise en charge.
Ajout d’un compte de stockage
Utilisez une action de script pour appliquer les modifications avec les considérations suivantes :
Propriété | Valeur |
---|---|
URI de script bash | https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh |
Type(s) de nœud | Head |
Paramètres | ACCOUNTNAME ACCOUNTKEY -p (facultatif) |
ACCOUNTNAME
est le nom du compte de stockage à ajouter au cluster HDInsight.ACCOUNTKEY
est la clé d’accès pourACCOUNTNAME
.-p
est facultatif. si ce paramètre est spécifié, la clé n’est pas chiffrée et est stockée en texte brut dans le fichier core-site.xml.
Vérification
Lorsque vous affichez le cluster HDInsight sur le Portail Azure, sélectionnez l’entrée Comptes de stockage sous Propriétés qui n’affichent pas les comptes de stockage ajoutés via cette action de script. Azure PowerShell et Azure CLI n’affichent pas non plus les comptes de stockage supplémentaires. Les informations de stockage n’apparaissent pas, car le script modifie uniquement la configuration core-site.xml
du cluster. Ces informations ne sont pas utilisées pour récupérer les informations du cluster avec les API de gestion Azure.
Pour vérifier que le stockage supplémentaire utilise l’une des méthodes affichées :
PowerShell
Le script renvoie le ou les noms du compte de stockage associé au cluster donné. Remplacez CLUSTERNAME
par le nom de cluster réel, puis exécutez le script.
# 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
Dans un navigateur web, accédez à
https://CLUSTERNAME.azurehdinsight.net
, oùCLUSTERNAME
est le nom de votre cluster.Accédez à HDFS>Configurations>Avancé>Configuration core-site personnalisée.
Observez les clés qui commencent par
fs.azure.account.key
. Le nom du compte fait partie de la clé, comme illustré dans cette image d’exemple :
Supprimer le compte de stockage
Dans un navigateur web, accédez à
https://CLUSTERNAME.azurehdinsight.net
, oùCLUSTERNAME
est le nom de votre cluster.Accédez à HDFS>Configurations>Avancé>Configuration core-site personnalisée.
Supprimez les clés suivantes :
fs.azure.account.key.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net
fs.azure.account.keyprovider.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net
Après avoir supprimé ces clés et enregistré la configuration, vous devez redémarrer Oozie, Yarn, MapReduce2, HDFS et Hive l’un après l’autre.
Problèmes connus
Pare-feu de stockage
Si vous choisissez de sécuriser votre compte de stockage à l’aide des restrictions de pare-feu et réseaux virtuels sur des réseaux sélectionnés, veillez à activer l’exception Autoriser les services approuvés de Microsoft afin que HDInsight puisse accéder à votre compte de stockage.
Impossible d’accéder au stockage après avoir modifié la clé
Si vous modifiez la clé d’un compte de stockage, HDInsight ne peut plus accéder au compte de stockage. HDInsight utilise une copie de la clé mise en cache dans le fichier core-site.xml pour le cluster. Cette copie mise en cache doit être mise à jour pour correspondre à la nouvelle clé.
Si vous exécutez de nouveau l’action de script, la clé n’est pas mise à jour, car le script vérifie s’il existe déjà une entrée pour le compte de stockage. S’il existe déjà une entrée, aucune modification n’est apportée.
Pour contourner ce problème :
Voir Mettre à jour les clés d’accès du compte de stockage pour découvrir comment faire pivoter les clés d’accès.
Vous pouvez également supprimer le compte de stockage, puis l’ajouter une nouvelle fois.
Étapes suivantes
Vous avez appris à ajouter des comptes de stockage supplémentaires à un cluster HDInsight existant. Pour plus d’informations sur les actions de script, consultez Personnalisation de clusters HDInsight basés sur Linux à l’aide d’une d’action de script.