Aggiungere altri account di archiviazione a HDInsight
Informazioni su come usare le azioni script per aggiungere altri account di Archiviazione di Azure a HDInsight. Nella procedura descritta in questo documento viene aggiunto un account di archiviazione a un cluster HDInsight esistente. Questo articolo si applica agli account di archiviazione, non all'account di archiviazione cluster predefinito e non a risorse di archiviazione aggiuntive, ad esempio Azure Data Lake Storage Gen2
.
Importante
Le informazioni in questo documento illustrano come aggiungere altri account di archiviazione a un cluster dopo la creazione. Per informazioni sull'aggiunta di account di archiviazione durante la creazione del cluster, vedere Configurare cluster in HDInsight con Apache Hadoop, Apache Spark, Apache Kafka e altro.
Prerequisiti
- Un cluster Hadoop in HDInsight. Vedere Guida introduttiva: Introduzione ad Apache Hadoop e Apache Hive in Azure HDInsight usando il modello di Resource Manager.
- Nome e chiave dell'account di archiviazione. Vedere Gestire le chiavi di accesso dell'account di archiviazione.
- Se si usa PowerShell, è necessario il modulo AZ. Vedere Panoramica di Azure PowerShell.
Funzionamento
Durante l'elaborazione, lo script esegue le azioni seguenti:
Se la chiave dell'account di archiviazione esiste già nella configurazione del file core-site.xml per il cluster, lo script viene chiuso e non vengono eseguite altre azioni.
Verifica che l'account di archiviazione esista e sia accessibile tramite la chiave.
Crittografa la chiave mediante le credenziali del cluster,
Aggiunge l'account di archiviazione al file core-site.xml.
Arrestare e riavviare i servizi Apache Oozie, Apache Hadoop YARN, Apache Hadoop MapReduce2 e Apache Hadoop HDFS. L'arresto e l'avvio di questi servizi consente di usare il nuovo account di archiviazione.
Avviso
L'uso di un account di archiviazione in una località diversa rispetto al cluster HDInsight non è supportato.
Aggiungere l’account di archiviazione
Usare Azione script per applicare le modifiche con le considerazioni seguenti:
Proprietà | valore |
---|---|
URI script Bash | https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh |
Tipo/i di nodo | Head |
Parametri | ACCOUNTNAME ACCOUNTKEY -p (facoltativo) |
ACCOUNTNAME
è il nome dell'account di archiviazione da aggiungere al cluster HDInsight.ACCOUNTKEY
è la chiave di accesso perACCOUNTNAME
.-p
è facoltativo. Se questo parametro viene specificato, la chiave non viene crittografata e viene archiviata nel file core-site.xml come testo normale.
Verifica
Quando si visualizza il cluster HDInsight nel Portale di Azure, se si seleziona la voce Account di archiviazione in Proprietà non vengono mostrati gli account di archiviazione aggiunti tramite questa azione script. L'account di archiviazione aggiuntivo non viene inoltre visualizzato in Azure PowerShell e nell'interfaccia della riga di comando di Azure. Le informazioni di archiviazione non vengono mostrate perché lo script modifica solo la configurazione di core-site.xml
per il cluster. Queste informazioni non vengono usate durante il recupero delle informazioni del cluster tramite le API di gestione di Azure.
Per verificare l'uso dello spazio di archiviazione aggiuntivo, usare uno dei metodi illustrati:
PowerShell
Lo script restituisce i nomi degli account di archiviazione associati al cluster specificato. Sostituire CLUSTERNAME
con il nome effettivo del cluster e quindi eseguire lo 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
In un Web browser passare a
https://CLUSTERNAME.azurehdinsight.net
doveCLUSTERNAME
è il nome del cluster.Passare a HDFS>Configs>Advanced>Custom core-site.
Osservare le chiavi che iniziano con
fs.azure.account.key
. Il nome dell'account fa parte della chiave, come illustrato in questa immagine di esempio:
Rimuovere account di archiviazione
In un Web browser passare a
https://CLUSTERNAME.azurehdinsight.net
doveCLUSTERNAME
è il nome del cluster.Passare a HDFS>Configs>Advanced>Custom core-site.
Rimuovere le chiavi seguenti:
fs.azure.account.key.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net
fs.azure.account.keyprovider.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net
Dopo aver rimosso queste chiavi e salvato la configurazione, è necessario riavviare Oozie, Yarn, MapReduce2, HDFS e Hive uno alla volta.
Problemi noti
Firewall di archiviazione
Se si sceglie di proteggere l'account di archiviazione con le restrizioni Firewall e reti virtuali per Reti selezionate, assicurarsi di abilitare l'eccezione Consenti servizi Microsoft attendibili in modo che HDInsight possa accedere all'account di archiviazione.
Non è possibile accedere alla risorsa di archiviazione dopo la modifica della chiave
Se si modifica la chiave per un account di archiviazione, HDInsight non potrà più accedere all'account di archiviazione. HDInsight usa una copia memorizzata nella cache della chiave in core-site.xml per il cluster. Questa copia memorizzata nella cache deve essere aggiornata in modo che corrisponda alla nuova chiave.
La ripetizione dell'esecuzione dell'azione script non aggiorna la chiave, perché lo script verifica se esiste già una voce per l'account di archiviazione. Se esiste già una voce, non viene apportata alcuna modifica.
Per risolvere il problema:
Per informazioni su come ruotare le chiavi di accesso, vedere Aggiornare le chiavi di accesso dell'account di archiviazione.
È anche possibile rimuovere l'account di archiviazione e quindi aggiungere di nuovo l'account di archiviazione.
Passaggi successivi
Si è appreso come aggiungere altri account di archiviazione a un cluster HDInsight esistente. Per altre informazioni sulle azioni script, vedere Personalizzare cluster HDInsight basati su Linux tramite Azione script