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ího účtu úložiště clusteru) a ne dalšího úložiště, například 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
- Cluster Hadoop ve službě HDInsight. Viz Začínáme se službou HDInsight v Linuxu.
- Název a klíč účtu úložiště Viz Správa přístupových klíčů účtu úložiště.
- Pokud používáte PowerShell, potřebujete modul AZ. Podívejte se na přehled Azure PowerShellu.
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 | ACCOUNTNAME ACCOUNTKEY -p (volitelné) |
ACCOUNTNAME
je název účtu úložiště, který se má přidat do clusteru HDInsight.ACCOUNTKEY
je přístupový klíč proACCOUNTNAME
.-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
Ve webovém prohlížeči přejděte do
https://CLUSTERNAME.azurehdinsight.net
umístění , kdeCLUSTERNAME
je název vašeho clusteru.Přejděte na konfigurace>HDFS>Advanced>Custom Core-Site.
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:
Odebrání účtu úložiště
Ve webovém prohlížeči přejděte do
https://CLUSTERNAME.azurehdinsight.net
umístění , kdeCLUSTERNAME
je název vašeho clusteru.Přejděte na konfigurace>HDFS>Advanced>Custom Core-Site.
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.