Přidání dalších účtů úložiště do HDInsightu

Naučte se používat akce skriptů k přidání dalších účtů Azure Storage do SLUŽBY HDInsight. Kroky v tomto dokumentu přidají účet úložiště do existujícího clusteru HDInsight. Tento článek se týká účtů úložiště (ne výchozí účet úložiště clusteru) a ne dalšího úložiště, jako Azure Data Lake Storage Gen1 je například a Azure Data Lake Storage Gen2.

Důležité

Informace v tomto dokumentu se týkají přidání dalších účtů úložiště do clusteru po jeho vytvoření. Informace o přidávání účtů úložiště během vytváření clusteru najdete v tématu Nastavení clusterů ve službě HDInsight pomocí Apache Hadoopu, Apache Sparku, Apache Kafka a dalších.

Požadavky

Jak to funguje

Během zpracování skript provede následující akce:

  • Pokud účet úložiště již v konfiguraci core-site.xml clusteru existuje, skript se ukončí a neprojde žádné další akce.

  • Ověří, že účet úložiště existuje a je k němu možné získat přístup pomocí klíče.

  • Zašifruje klíč pomocí přihlašovacích údajů clusteru.

  • Přidá účet úložiště do souboru core-site.xml.

  • Zastaví a restartuje služby Apache Oozie, Apache Hadoop YARN, Apache Hadoop MapReduce2 a Apache Hadoop HDFS. Zastavení a spuštění těchto služeb jim umožní používat nový účet úložiště.

Upozorňující

Použití účtu úložiště v jiném umístění než cluster HDInsight se nepodporuje.

Přidání účtu úložiště

Pomocí akce skriptu použijte změny s následujícími aspekty:

Vlastnost Hodnota
Identifikátor URI skriptu Bash https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh
Typy uzlů Head
Parametry ACCOUNTNAMEACCOUNTKEY-p (volitelné)
  • ACCOUNTNAME je název účtu úložiště, který se má přidat do clusteru HDInsight.
  • ACCOUNTKEY je přístupový klíč pro ACCOUNTNAME.
  • -p je volitelné. Pokud je zadaný, klíč není šifrovaný a je uložený v souboru core-site.xml jako prostý text.

Ověření

Při zobrazení clusteru HDInsight na webu Azure Portal vyberte položku Účty úložiště v části Vlastnosti nezobrazují účty úložiště přidané prostřednictvím této akce skriptu. Azure PowerShell ani Azure CLI nezobrazují další účet úložiště. Informace o úložišti se nezobrazují, protože skript pouze core-site.xml upraví konfiguraci clusteru. Tyto informace se nepoužívají při načítání informací o clusteru pomocí rozhraní API pro správu Azure.

K ověření dalšího úložiště použijte jednu z uvedených metod:

PowerShell

Skript vrátí názvy účtů úložiště přidružené k danému clusteru. Nahraďte CLUSTERNAME skutečným názvem clusteru a spusťte skript.

# 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. Ve webovém prohlížeči přejděte do https://CLUSTERNAME.azurehdinsight.netumístění , kde CLUSTERNAME je název vašeho clusteru.

  2. Přejděte na konfigurace>HDFS>Advanced>Custom Core-Site.

  3. Sledujte klíče, které začínají fs.azure.account.key. Název účtu je součástí klíče, jak je vidět na tomto ukázkovém obrázku:

    verification through Apache Ambari.

Odebrání účtu úložiště

  1. Ve webovém prohlížeči přejděte do https://CLUSTERNAME.azurehdinsight.netumístění , kde CLUSTERNAME je název vašeho clusteru.

  2. Přejděte na konfigurace>HDFS>Advanced>Custom Core-Site.

  3. Odeberte následující klíče:

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

Po odebrání těchto klíčů a uložení konfigurace je potřeba restartovat Oozie, Yarn, MapReduce2, HDFS a Hive jeden po druhém.

Známé problémy

Brána firewall úložiště

Pokud se rozhodnete zabezpečit účet úložiště pomocí omezení brány firewall a virtuálních sítí ve vybraných sítích, nezapomeňte povolit výjimku Povolit důvěryhodné služby Microsoft, aby služba HDInsight mohla přistupovat k vašemu účtu úložiště.

Po změně klíče nejde získat přístup k úložišti

Pokud změníte klíč účtu úložiště, hdInsight už nemá přístup k účtu úložiště. HDInsight používá kopii klíče uloženého v mezipaměti v core-site.xml clusteru. Tato kopie uložená v mezipaměti musí být aktualizována tak, aby odpovídala novému klíči.

Spuštění akce skriptu znovu neaktualizuje klíč, protože skript zkontroluje, jestli položka pro účet úložiště už existuje. Pokud položka již existuje, neprovádí žádné změny.

Alternativní řešení tohoto problému:

  • Informace o obměně přístupových klíčů najdete v tématu Aktualizace přístupových klíčů účtu úložiště.

  • Můžete také odebrat účet úložiště a pak přidat zpět účet úložiště.

Další kroky

Naučili jste se přidat další účty úložiště do existujícího clusteru HDInsight. Další informace o akcích skriptů najdete v tématu Přizpůsobení clusterů HDInsight se systémem Linux pomocí akce skriptu.