Bagikan melalui


Mulai cepat: Membuat kluster Apache Hadoop di Azure HDInsight menggunakan templat ARM

Dalam panduan memulai cepat ini, Anda menggunakan templat Azure Resource Manager (templat ARM) untuk membuat cluster Apache Hadoop di Azure HDInsight. Hadoop adalah kerangka kerja sumber terbuka asli untuk pemrosesan terdistribusi dan analisis kumpulan big data pada kluster. Ekosistem Hadoop mencakup perangkat lunak dan utilitas terkait, termasuk Apache Hive, Apache HBase, Spark, Kafka, dan banyak lainnya.

Templat Azure Resource Manager adalah file JavaScript Object Notation (JSON) yang menentukan infrastruktur dan konfigurasi untuk proyek Anda. Template tersebut menggunakan sintaksis deklaratif. Anda menggambarkan penyebaran yang diinginkan tanpa harus menulis urutan perintah pemrograman untuk membuat penyebaran tersebut.

Saat ini HDInsight hadir dengan tujuh jenis kluster yang berbeda. Setiap jenis kluster mendukung serangkaian komponen yang berbeda. Semua jenis kluster mendukung Apache Hive. Untuk daftar komponen yang didukung di HDInsight, lihat Apa yang baru dalam versi kluster Hadoop yang disediakan oleh HDInsight?

Jika lingkungan Anda telah memenuhi prasyarat dan Anda terbiasa menggunakan templat ARM, pilih tombol Sebarkan ke Azure. Templat akan terbuka di portal Microsoft Azure.

Tombol untuk menyebarkan templat Resource Manager ke Azure.

Prerequisites

Jika Anda tidak memiliki langganan Azure, buatlah akun gratis sebelum Anda memulai.

Meninjau templat

Templat yang digunakan dalam quickstart ini berasal dari Azure Quickstart Templates.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.26.54.24096",
      "templateHash": "1839820966662864707"
    }
  },
  "parameters": {
    "clusterName": {
      "type": "string",
      "metadata": {
        "description": "The name of the HDInsight cluster to create."
      }
    },
    "clusterType": {
      "type": "string",
      "allowedValues": [
        "hadoop",
        "intractivehive",
        "hbase",
        "storm",
        "spark"
      ],
      "metadata": {
        "description": "The type of the HDInsight cluster to create."
      }
    },
    "clusterLoginUserName": {
      "type": "string",
      "metadata": {
        "description": "These credentials can be used to submit jobs to the cluster and to log into cluster dashboards."
      }
    },
    "clusterLoginPassword": {
      "type": "securestring",
      "minLength": 10,
      "metadata": {
        "description": "The password must be at least 10 characters in length and must contain at least one digit, one upper case letter, one lower case letter, and one non-alphanumeric character except (single-quote, double-quote, backslash, right-bracket, full-stop). Also, the password must not contain 3 consecutive characters from the cluster username or SSH username."
      }
    },
    "sshUserName": {
      "type": "string",
      "metadata": {
        "description": "These credentials can be used to remotely access the cluster. The username cannot be admin."
      }
    },
    "sshPassword": {
      "type": "securestring",
      "minLength": 6,
      "maxLength": 72,
      "metadata": {
        "description": "SSH password must be 6-72 characters long and must contain at least one digit, one upper case letter, and one lower case letter.  It must not contain any 3 consecutive characters from the cluster login name"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "HeadNodeVirtualMachineSize": {
      "type": "string",
      "defaultValue": "Standard_E4_v3",
      "allowedValues": [
        "Standard_A4_v2",
        "Standard_A8_v2",
        "Standard_E2_v3",
        "Standard_E4_v3",
        "Standard_E8_v3",
        "Standard_E16_v3",
        "Standard_E20_v3",
        "Standard_E32_v3",
        "Standard_E48_v3"
      ],
      "metadata": {
        "description": "This is the headnode Azure Virtual Machine size, and will affect the cost. If you don't know, just leave the default value."
      }
    },
    "WorkerNodeVirtualMachineSize": {
      "type": "string",
      "defaultValue": "Standard_E4_v3",
      "allowedValues": [
        "Standard_A4_v2",
        "Standard_A8_v2",
        "Standard_E2_v3",
        "Standard_E4_v3",
        "Standard_E8_v3",
        "Standard_E16_v3",
        "Standard_E20_v3",
        "Standard_E32_v3",
        "Standard_E48_v3"
      ],
      "metadata": {
        "description": "This is the workdernode Azure Virtual Machine size, and will affect the cost. If you don't know, just leave the default value."
      }
    }
  },
  "variables": {
    "defaultStorageAccount": {
      "name": "[uniqueString(resourceGroup().id)]",
      "type": "Standard_LRS"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-08-01",
      "name": "[variables('defaultStorageAccount').name]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[variables('defaultStorageAccount').type]"
      },
      "kind": "StorageV2",
      "properties": {}
    },
    {
      "type": "Microsoft.HDInsight/clusters",
      "apiVersion": "2021-06-01",
      "name": "[parameters('clusterName')]",
      "location": "[parameters('location')]",
      "properties": {
        "clusterVersion": "4.0",
        "osType": "Linux",
        "clusterDefinition": {
          "kind": "[parameters('clusterType')]",
          "configurations": {
            "gateway": {
              "restAuthCredential.isEnabled": true,
              "restAuthCredential.username": "[parameters('clusterLoginUserName')]",
              "restAuthCredential.password": "[parameters('clusterLoginPassword')]"
            }
          }
        },
        "storageProfile": {
          "storageaccounts": [
            {
              "name": "[replace(replace(concat(reference(resourceId('Microsoft.Storage/storageAccounts', variables('defaultStorageAccount').name), '2021-08-01').primaryEndpoints.blob), 'https:', ''), '/', '')]",
              "isDefault": true,
              "container": "[parameters('clusterName')]",
              "key": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('defaultStorageAccount').name), '2021-08-01').keys[0].value]"
            }
          ]
        },
        "computeProfile": {
          "roles": [
            {
              "name": "headnode",
              "targetInstanceCount": 2,
              "hardwareProfile": {
                "vmSize": "[parameters('HeadNodeVirtualMachineSize')]"
              },
              "osProfile": {
                "linuxOperatingSystemProfile": {
                  "username": "[parameters('sshUserName')]",
                  "password": "[parameters('sshPassword')]"
                }
              }
            },
            {
              "name": "workernode",
              "targetInstanceCount": 2,
              "hardwareProfile": {
                "vmSize": "[parameters('WorkerNodeVirtualMachineSize')]"
              },
              "osProfile": {
                "linuxOperatingSystemProfile": {
                  "username": "[parameters('sshUserName')]",
                  "password": "[parameters('sshPassword')]"
                }
              }
            }
          ]
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts', variables('defaultStorageAccount').name)]"
      ]
    }
  ],
  "outputs": {
    "storage": {
      "type": "object",
      "value": "[reference(resourceId('Microsoft.Storage/storageAccounts', variables('defaultStorageAccount').name), '2021-08-01')]"
    },
    "cluster": {
      "type": "object",
      "value": "[reference(resourceId('Microsoft.HDInsight/clusters', parameters('clusterName')), '2021-06-01')]"
    }
  }
}

Dua sumber daya Azure yang ditentukan dalam templat:

Menyebarkan templat

  1. Pilih tombol Sebarkan ke Azure di bawah ini untuk masuk ke Azure dan membuka templat ARM.

    Tombol untuk menyebarkan templat Resource Manager ke Azure.

  2. Masukkan atau pilih nilai berikut:

    Property Description
    Subscription Dari daftar drop-down, pilih langganan Azure yang digunakan untuk kluster.
    Grup sumber daya Dari daftar drop-down, pilih grup sumber daya yang sudah ada, atau pilih Buat baru.
    Location Nilai akan diisi otomatis dengan lokasi yang digunakan untuk grup sumber daya.
    Nama Kluster Masukkan nama yang unik secara global. Untuk templat ini, gunakan hanya huruf kecil, dan angka.
    Jenis Kluster Pilih hadoop.
    Nama Pengguna Login Kluster Berikan nama pengguna, defaultnya adalah admin.
    Kata Sandi Masuk Kluster Berikan kata sandi. Panjang kata sandi harus minimal 10 karakter dan harus berisi setidaknya satu digit, satu huruf besar, dan satu huruf kecil, satu karakter non-alfanumerik (kecuali karakter ' ` ").
    Nama Pengguna Ssh Berikan nama pengguna, defaultnya adalah sshuser.
    Kata Sandi Ssh Berikan kata sandi.

    Beberapa properti telah dikodekan secara permanen dalam templat. Anda dapat mengonfigurasi nilai-nilai ini dari templat. Untuk penjelasan selengkapnya tentang properti ini, lihat Membuat kluster Apache Hadoop di HDInsight.

    Note

    Nilai yang Anda berikan harus unik dan harus mengikuti panduan penamaan. Templat tidak melakukan pemeriksaan validasi. Jika nilai yang Anda berikan sudah digunakan, atau tidak mengikuti panduan, Anda mendapatkan kesalahan setelah mengirimkan templat.

    HDInsight Linux memulai penggunaan templat Resource Manager di portal.

  3. Tinjau SYARAT DAN KETENTUAN. Kemudian pilih Saya menyetujui syarat dan ketentuan yang dinyatakan di atas, lalu Beli. Anda akan menerima pemberitahuan bahwa penyebaran Anda sedang berlangsung. Dibutuhkan sekitar 20 menit untuk membuat kluster.

Meninjau sumber daya yang disebarkan

Setelah kluster dibuat, Anda akan menerima pemberitahuan Penyebaran berhasil dengan tautan Buka sumber daya . Halaman Grup sumber daya Anda akan mencantumkan kluster HDInsight baru Anda dan penyimpanan default yang terkait dengan kluster. Setiap kluster memiliki akun Azure Blob Storage , atau Azure Data Lake Storage Gen2 dependensi. Ini disebut sebagai akun penyimpanan default. Kluster HDInsight dan akun penyimpanan defaultnya harus dikolokasikan di wilayah Azure yang sama. Menghapus kluster tidak menghapus akun penyimpanan.

Note

Untuk metode pembuatan kluster lainnya dan memahami sifat yang digunakan dalam panduan mulai cepat ini, lihat Membuat kluster HDInsight.

Membersihkan sumber daya

Setelah Anda menyelesaikan panduan memulai cepat, Anda dapat menghapus kluster. Dengan HDInsight, data Anda disimpan di Azure Storage, sehingga Anda dapat menghapus kluster dengan aman saat tidak digunakan. Anda juga dikenakan biaya untuk klaster HDInsight, bahkan saat tidak digunakan. Karena biaya untuk kluster berkali-kali lebih banyak daripada biaya untuk penyimpanan, masuk akal secara ekonomis untuk menghapus kluster saat tidak digunakan.

Note

Jika Anda segera melanjutkan ke tutorial berikutnya untuk mempelajari cara menjalankan operasi ETL menggunakan Hadoop di HDInsight, Anda mungkin ingin menjaga kluster tetap berjalan. Ini karena dalam tutorial Anda harus membuat kluster Hadoop lagi. Namun, jika Anda tidak segera melalui tutorial berikutnya, Anda harus menghapus kluster sekarang.

Dari portal Microsoft Azure, navigasikan ke kluster Anda, dan pilih Hapus.

HdInsight menghapus kluster dari portal.

Anda juga dapat memilih nama grup sumber daya untuk membuka halaman grup sumber daya, lalu pilih Hapus grup sumber daya. Dengan menghapus grup sumber daya, Anda menghapus kluster HDInsight, dan akun penyimpanan default.

Langkah selanjutnya

Dalam panduan memulai cepat ini, Anda mempelajari cara membuat kluster Apache Hadoop secara cepat di HDInsight menggunakan templat ARM. Di artikel berikutnya, Anda mempelajari cara melakukan operasi ekstrak, transformasi, dan pemuatan (ETL) menggunakan Hadoop di HDInsight.