HDInsight'a ek depolama hesapları ekleme
HDInsight'a ek Azure Depolama hesapları eklemek için betik eylemlerini kullanmayı öğrenin. Bu belgedeki adımlar, var olan bir HDInsight kümesine depolama hesabı ekler. Bu makale, depolama hesapları (varsayılan küme depolama hesabı değil) için geçerlidir ve gibi ek depolama alanları için Azure Data Lake Storage Gen2
geçerli değildir.
Önemli
Bu belgedeki bilgiler, oluşturulduktan sonra kümeye ek depolama hesapları ekleme hakkındadır. Küme oluşturma sırasında depolama hesapları ekleme hakkında bilgi için bkz . Apache Hadoop, Apache Spark, Apache Kafka ve daha fazlası ile HDInsight'ta kümeleri ayarlama.
Önkoşullar
- HDInsight üzerinde hadoop kümesi. Bkz . Linux'ta HDInsight'ı kullanmaya başlama.
- Depolama hesabı adı ve anahtarı. Bkz. Depolama hesabı erişim anahtarlarını yönetme.
- PowerShell kullanıyorsanız AZ modülüne ihtiyacınız vardır. Bkz. Azure PowerShell'e genel bakış.
Nasıl çalışır?
İşlem sırasında betik aşağıdaki eylemleri gerçekleştirir:
Depolama hesabı kümenin core-site.xml yapılandırmasında zaten varsa, betik çıkar ve başka bir işlem yapılmaz.
Depolama hesabının mevcut olduğunu ve anahtarı kullanılarak erişilebildiğini doğrular.
Küme kimlik bilgilerini kullanarak anahtarı şifreler.
Depolama hesabını core-site.xml dosyasına ekler.
Apache Oozie, Apache Hadoop YARN, Apache Hadoop MapReduce2 ve Apache Hadoop HDFS hizmetlerini durdurur ve yeniden başlatır. Bu hizmetlerin durdurulması ve başlatılması, yeni depolama hesabını kullanmalarına olanak tanır.
Uyarı
HDInsight kümesinden farklı bir konumda depolama hesabı kullanılması desteklenmez.
Depolama hesabı ekleme
Değişiklikleri uygulamak için Betik Eylemi'ni kullanın ve aşağıdaki noktaları dikkate alın:
Özellik | Değer |
---|---|
Bash betik URI'si | https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh |
Düğüm türleri | Head |
Parametreler | ACCOUNTNAME ACCOUNTKEY -p (isteğe bağlı) |
ACCOUNTNAME
, HDInsight kümesine eklenecek depolama hesabının adıdır.ACCOUNTKEY
, içinACCOUNTNAME
erişim anahtarıdır.-p
isteğe bağlıdır. Belirtilirse anahtar şifrelenmez ve core-site.xml dosyasında düz metin olarak depolanır.
Doğrulama
HDInsight kümesini Azure portalında görüntülediğinizde, Özellikler bu betik eylemiyle eklenen depolama hesaplarını görüntülemez altındaki Depolama Hesapları girişini seçin. Azure PowerShell ve Azure CLI ek depolama hesabını da görüntülemez. Betik yalnızca kümenin yapılandırmasını değiştirdiğinden core-site.xml
depolama bilgileri görüntülenmez. Bu bilgiler, Azure yönetim API'lerini kullanarak küme bilgileri alınırken kullanılmaz.
Ek depolama alanını doğrulamak için gösterilen yöntemlerden birini kullanın:
PowerShell
Betik, verilen kümeyle ilişkilendirilmiş Depolama Hesabı adlarını döndürür. değerini gerçek küme adıyla değiştirin CLUSTERNAME
ve betiği çalıştırın.
# 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
Bir web tarayıcısından adresine gidin
https://CLUSTERNAME.azurehdinsight.net
; buradaCLUSTERNAME
kümenizin adıdır.HDFS>Yapılandırmaları>Gelişmiş>Özel çekirdek-sitesine gidin.
ile
fs.azure.account.key
başlayan anahtarları inceleyin. Hesap adı, bu örnek görüntüde görüldüğü gibi anahtarın bir parçasıdır:
Depolama hesabını kaldırma
Bir web tarayıcısından adresine gidin
https://CLUSTERNAME.azurehdinsight.net
; buradaCLUSTERNAME
kümenizin adıdır.HDFS>Yapılandırmaları>Gelişmiş>Özel çekirdek-sitesine gidin.
Aşağıdaki anahtarları kaldırın:
fs.azure.account.key.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net
fs.azure.account.keyprovider.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net
Bu anahtarları kaldırıp yapılandırmayı kaydettikten sonra Oozie, Yarn, MapReduce2, HDFS ve Hive'ı tek tek yeniden başlatmanız gerekir.
Bilinen sorunlar
Depolama güvenlik duvarı
Seçili ağlardaki Güvenlik duvarları ve sanal ağlar kısıtlamalarıyla depolama hesabınızın güvenliğini sağlamayı seçerseniz, HDInsight'ın depolama hesabınıza erişebilmesi için Güvenilen Microsoft hizmetleri izin ver özel durumunu etkinleştirdiğinizden emin olun.
Anahtar değiştirildikten sonra depolamaya erişilemiyor
Depolama hesabının anahtarını değiştirirseniz HDInsight artık depolama hesabına erişemez. HDInsight, küme için core-site.xml önbelleğe alınmış bir anahtar kopyası kullanır. Önbelleğe alınan bu kopya, yeni anahtarla eşleşecek şekilde güncelleştirilmelidir.
Betik eyleminin yeniden çalıştırılması anahtarı güncelleştirmez , çünkü betik depolama hesabı için bir girişin zaten var olup olmadığını denetler. Bir girdi zaten varsa, herhangi bir değişiklik yapmaz.
Bu soruna geçici bir çözüm olarak:
Erişim anahtarlarını döndürme hakkında bkz . Depolama hesabı erişim anahtarlarını güncelleştirme.
Ayrıca depolama hesabını kaldırabilir ve ardından depolama hesabını geri ekleyebilirsiniz.
Sonraki adımlar
Mevcut bir HDInsight kümesine ek depolama hesapları eklemeyi öğrendinsiniz. Betik eylemleri hakkında daha fazla bilgi için bkz . Betik eylemini kullanarak Linux tabanlı HDInsight kümelerini özelleştirme