Menambahkan akun penyimpanan tambahan ke HDInsight

Pelajari cara menggunakan tindakan skrip untuk menambahkan akun Azure Storage tambahan ke HDInsight. Langkah-langkah dalam dokumen ini menambahkan akun penyimpanan ke kluster HDInsight yang sudah ada. Artikel ini berlaku untuk akun penyimpanan (bukan akun penyimpanan kluster default), dan bukan penyimpanan tambahan seperti Azure Data Lake Storage Gen1 dan Azure Data Lake Storage Gen2.

Penting

Informasi dalam dokumen ini adalah tentang penambahan akun penyimpanan tambahan ke kluster setelah kluster dibuat. Untuk informasi tentang penambahan akun penyimpanan selama pembuatan kluster, lihat Menyiapkan kluster di HDInsight dengan Apache Hadoop, Apache Spark, Apache Kafka, dan lain-lain.

Prasyarat

Cara kerjanya

Selama pemrosesan, skrip melakukan tindakan berikut:

  • Jika akun penyimpanan sudah ada dalam konfigurasi core-site.xml untuk kluster, skrip keluar dan tidak ada tindakan lebih lanjut yang dilakukan.

  • Verifikasi bahwa akun penyimpanan ada dan dapat diakses menggunakan kunci.

  • Mengenkripsi kunci menggunakan kredensial kluster.

  • Menambahkan akun penyimpanan ke file core-site.xml.

  • Menghentikan dan memulai ulang layanan Apache Oozie, Apache Hadoop YARN, Apache Hadoop MapReduce2, dan Apache Hadoop HDFS. Menghentikan dan memulai layanan ini memungkinkan layanan untuk menggunakan akun penyimpanan baru.

Peringatan

Penggunaan akun penyimpanan di lokasi yang berbeda dari kluster HDInsight tidak didukung.

Menambahkan akun penyimpanan

Gunakan Tindakan Skrip untuk menerapkan perubahan dengan pertimbangan berikut ini:

Properti Nilai
URI skrip bash https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh
Jenis node Head
Parameter ACCOUNTNAMEACCOUNTKEY-p (opsional)
  • ACCOUNTNAME adalah nama akun penyimpanan yang ditambahkan ke kluster HDInsight.
  • ACCOUNTKEY adalah kunci akses untuk ACCOUNTNAME.
  • -p bersifat opsional. Jika ditentukan, kunci tidak dienkripsi dan disimpan dalam file core-site.xml sebagai teks biasa.

Verifikasi

Saat Anda melihat kluster HDInsight di portal Azure, pilih entri Akun Penyimpanan di bawah Properti tidak menampilkan akun penyimpanan yang ditambahkan melalui tindakan skrip ini. Azure PowerShell dan Azure CLI juga tidak menampilkan akun penyimpanan tambahan. Informasi penyimpanan tidak ditampilkan karena skrip hanya memodifikasi core-site.xml konfigurasi untuk kluster. Informasi ini tidak digunakan saat mengambil informasi kluster menggunakan API manajemen Azure.

Untuk memverifikasi penyimpanan tambahan, gunakan salah satu metode yang ditampilkan:

PowerShell

Skrip mengembalikan nama Akun Penyimpanan yang terkait dengan kluster yang diberikan. Ganti CLUSTERNAME dengan nama kluster yang sebenarnya, lalu jalankan skrip.

# 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. Dari browser web, arahkan ke https://CLUSTERNAME.azurehdinsight.net, di mana CLUSTERNAME merupakan nama kluster Anda.

  2. Arahkan ke Konfigurasi>HDFS>Tingkat Lanjut>Situs inti kustom.

  3. Amati kunci yang dimulai dengan fs.azure.account.key. Nama akun adalah bagian dari kunci seperti yang terlihat dalam gambar sampel ini:

    verification through Apache Ambari.

Menghapus akun penyimpanan

  1. Dari browser web, arahkan ke https://CLUSTERNAME.azurehdinsight.net, di mana CLUSTERNAME merupakan nama kluster Anda.

  2. Arahkan ke Konfigurasi>HDFS>Tingkat Lanjut>Situs inti kustom.

  3. Hapus kunci berikut:

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

Setelah menghapus kunci ini dan menyimpan konfigurasi, Anda harus memulai ulang Oozie, Yarn, MapReduce2, HDFS, dan Apache Hive satu per satu.

Masalah umum

Firewall penyimpanan

Jika Anda memilih untuk mengamankan akun penyimpanan Anda dengan pembatasan Firewall dan jaringan virtual pada Jaringan yang dipilih, pastikan untuk mengaktifkan pengecualian Izinkan layanan Microsoft tepercaya sehingga HDInsight dapat mengakses akun penyimpanan Anda.

Tidak dapat mengakses penyimpanan setelah mengubah kunci

Jika Anda mengubah kunci untuk akun penyimpanan, HDInsight tidak dapat lagi mengakses akun penyimpanan. HDInsight menggunakan penembolokan salinan kunci di core-site.xml untuk kluster. Penembolokan salinan ini harus dimutakhirkan agar cocok dengan kunci baru.

Menjalankan tindakan skrip lagi tidak memperbarui kunci, karena skrip memeriksa untuk melihat apakah entri untuk akun penyimpanan sudah ada. Jika entri sudah ada, tidak ada yang diubah.

Untuk mengatasi masalah ini:

Langkah berikutnya

Anda sudah mempelajari cara menambahkan akun penyimpanan tambahan ke kluster HDInsight yang sudah ada. Untuk informasi selengkapnya tentang tindakan skrip, lihat Kustomisasi kluster HDInsight berbasis Linux menggunakan tindakan skrip