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 Gen2geç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

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 ACCOUNTNAMEACCOUNTKEY -p (isteğe bağlı)
  • ACCOUNTNAME , HDInsight kümesine eklenecek depolama hesabının adıdır.
  • ACCOUNTKEY , için ACCOUNTNAMEeriş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

  1. Bir web tarayıcısından adresine gidin https://CLUSTERNAME.azurehdinsight.net; burada CLUSTERNAME kümenizin adıdır.

  2. HDFS>Yapılandırmaları>Gelişmiş>Özel çekirdek-sitesine gidin.

  3. ile fs.azure.account.keybaşlayan anahtarları inceleyin. Hesap adı, bu örnek görüntüde görüldüğü gibi anahtarın bir parçasıdır:

    apache Ambari aracılığıyla doğrulama.

Depolama hesabını kaldırma

  1. Bir web tarayıcısından adresine gidin https://CLUSTERNAME.azurehdinsight.net; burada CLUSTERNAME kümenizin adıdır.

  2. HDFS>Yapılandırmaları>Gelişmiş>Özel çekirdek-sitesine gidin.

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

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