Condividi tramite


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 Gen1 e 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

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 per ACCOUNTNAME.
  • -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

  1. In un Web browser passare a https://CLUSTERNAME.azurehdinsight.net dove CLUSTERNAME è il nome del cluster.

  2. Passare a HDFS>Configs>Advanced>Custom core-site.

  3. 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:

    Verifica tramite Apache Ambari.

Rimuovere account di archiviazione

  1. In un Web browser passare a https://CLUSTERNAME.azurehdinsight.net dove CLUSTERNAME è il nome del cluster.

  2. Passare a HDFS>Configs>Advanced>Custom core-site.

  3. 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:

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