Aggiungere altri account di archiviazione a HDInsight

Informazioni su come usare le azioni script per aggiungere altri account Archiviazione di Azure a HDInsight. I passaggi descritti in questo documento aggiungono 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, Azure Data Lake Storage Gen1 ad esempio e Azure Data Lake Storage Gen2.

Importante

Le informazioni contenute in questo documento riguardano l'aggiunta di account di archiviazione aggiuntivi 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 l'account di archiviazione esiste già nella configurazione 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 l'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 ACCOUNTNAMEACCOUNTKEY-p (facoltativo)
  • ACCOUNTNAME è il nome dell'account di archiviazione da aggiungere al cluster HDInsight.
  • ACCOUNTKEY è la chiave di accesso per ACCOUNTNAME.
  • -p è facoltativo. Se 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, selezionare la voce account Archiviazione in Proprietà non vengono visualizzati gli account di archiviazione aggiunti tramite questa azione script. Azure PowerShell e l'interfaccia della riga di comando di Azure non visualizzano nemmeno l'account di archiviazione aggiuntivo. Le informazioni di archiviazione non vengono visualizzate perché lo script modifica solo la core-site.xml configurazione per il cluster. Queste informazioni non vengono usate quando si recuperano le informazioni del cluster usando 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 Archiviazione account 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 Configurazioni>HDFS>Avanzate>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:

    verification through 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 Configurazioni>HDFS>Avanzate>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 Archiviazione

Se si sceglie di proteggere l'account di archiviazione con le restrizioni firewall e reti virtuali nelle 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.

L'esecuzione dell'azione script non aggiorna nuovamente la chiave, perché lo script verifica se esiste già una voce per l'account di archiviazione. Se esiste già una voce, non apporta modifiche.

Per risolvere il problema:

  • Vedere Aggiornare le chiavi di accesso dell'account di archiviazione su come ruotare le chiavi di accesso.

  • È 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