Menghubungkan HDInsight ke jaringan lokal Anda

HDInsight dapat dihubungkan ke jaringan lokal dengan menggunakan Azure Virtual Networks dan gateway VPN. Dokumen ini menyediakan informasi perencanaan tentang:

  • Menggunakan HDInsight di Azure Virtual Network yang tersambung ke jaringan lokal Anda.
  • Mengonfigurasikan resolusi nama DNS antara jaringan virtual dan jaringan lokal.
  • Mengonfigurasi grup keamanan jaringan untuk membatasi akses internet ke HDInsight.
  • Port yang disediakan oleh HDInsight pada jaringan virtual.

Gambaran Umum

Untuk memperbolehkan HDInsight dan sumber daya dalam jaringan yang bergabung berkomunikasi dengan nama, Anda harus melakukan tindakan berikut:

  1. Buat Azure Virtual Network.
  2. Buat server DNS kustom di Azure Virtual Network.
  3. Konfigurasikan jaringan virtual untuk menggunakan server DNS kustom alih-alih Azure Recursive Resolver default.
  4. Konfigurasikan penerusan antara server DNS kustom dan server DNS lokal Anda.

Konfigurasi ini memungkinkan perilaku berikut:

  • Permintaan untuk nama domain yang sepenuhnya memenuhi syarat yang memiliki akhiran DNS untuk jaringan virtual diteruskan ke server DNS kustom. Server DNS kustom kemudian meneruskan permintaan ini ke Azure Recursive Resolver, yang mengembalikan alamat IP.
  • Teruskan semua permintaan lainnya ke server DNS lokal. Bahkan permintaan untuk sumber daya internet publik microsoft.com yang diteruskan ke server DNS lokal untuk resolusi nama.

Dalam diagram berikut, garis hijau adalah permintaan sumber daya yang berakhiran akhiran DNS jaringan virtual. Garis biru adalah permintaan sumber daya di jaringan lokal atau di internet publik.

Diagram of how DNS requests are resolved in the configuration.

Prasyarat

Membuat konfigurasi jaringan virtual

Gunakan dokumen berikut untuk mempelajari cara membuat Jaringan Virtual Azure yang tersambung ke jaringan lokal Anda:

Membuat server DNS kustom

Penting

Anda harus membuat dan mengonfigurasi server DNS sebelum menginstal HDInsight di jaringan virtual.

Langkah-langkah ini menggunakan portal Microsoft Azure untuk membuat Azure Virtual Machine. Untuk cara lain untuk membuat mesin virtual, lihat Membuat VM - Azure CLI dan Membuat VM - Azure PowerShell. Untuk membuat VM Linux yang menggunakan perangkat lunak Bind DNS, gunakan langkah-langkah berikut:

  1. Masuk ke portal Azure.

  2. Dari menu di bagian atas, pilih + Buat sumber daya.

    Create an Ubuntu virtual machine.

  3. Pilih Compute>Virtual machine untuk masuk ke halaman Buat mesin virtual.

  4. Pada tab Basics, berikan informasi berikut ini:

    Bidang Nilai
    Langganan Pilih langganan yang sesuai.
    Grup sumber daya Pilih grup sumber daya yang memuat jaringan maya yang dibuat sebelumnya.
    Nama komputer virtual Masukkan nama bersahabat yang mengidentifikasi mesin virtual ini. Contoh ini menggunakan DNSProxy.
    Wilayah Pilih wilayah yang sama dengan jaringan virtual yang dibuat sebelumnya. Tidak semua ukuran VM tersedia di semua wilayah.
    Opsi ketersediaan Pilih tingkat ketersediaan yang Anda inginkan. Azure menawarkan berbagai opsi untuk mengelola ketersediaan dan ketahanan untuk aplikasi Anda. Rancangan solusi Anda untuk menggunakan VM yang direplikasi di Availability Zone atau Availability Set untuk melindungi aplikasi dan data Anda dari pemadaman pusat data dan peristiwa pemeliharaan. Contoh ini tidak menggunakan redundansi infrastruktur yang diperlukan.
    Gambar Pilih Ubuntu Server 18.04 LTS.
    Jenis autentikasi Kata sandi atau SSH public key: Metode autentikasi untuk akun SSH. Sebaiknya gunakan kunci publik, karena lebih aman. Contoh ini menggunakan Kata Sandi. Untuk informasi selengkapnya, lihat Membuat dan menggunakan kunci SSH untuk dokumen VM Linux.
    Nama pengguna Masukkan nama Admin untuk VM. Contoh ini menggunakan sshuser.
    Kata sandi atau kunci publik SSH Bidang yang tersedia ditentukan oleh pilihan Anda untuk jenis Autentikasi. Masukkan nilai yang sesuai.
    Port masuk publik Pilih Izinkan port terpilih. Lalu pilih SSH (22) dari daftar drop-down Pilih port masuk.

    Virtual machine basic configuration.

    Tinggalkan entri lain pada nilai default lalu pilih tab Networking.

  5. Di tab Networking, masukkan atau pilih informasi berikut ini:

    Bidang Nilai
    Jaringan virtual Pilih jaringan virtual yang Anda buat sebelumnya.
    Subnet Pilih subjaringan asali untuk jaringan maya yang Anda buat sebelumnya. Jangan pilih subjaringan yang digunakan oleh gateway VPN.
    IP Publik Gunakan nilai yang diisi otomatis.

    HDInsight Virtual network settings.

    Tinggalkan entri lain di nilai default lalu pilih Tinjau + buat.

  6. Dari tab Tinjau + buat, pilih Buat untuk membuat mesin virtual.

Tinjau Alamat IP

Setelah pabrik data dibuat, Anda akan menerima pemberitahuan Penyebaran berhasil dengan tombol Masuk ke sumber daya. Pilih Menuju sumber daya untuk masuk ke mesin virtual baru Anda. Dari tampilan default untuk mesin virtual baru Anda, ikuti langkah-langkah ini untuk mengidentifikasi Alamat IP terkait:

  1. Di Pengaturan, pilih Properti.

  2. Perhatikan nilai untuk ALAMAT IP PUBLIK/LABEL NAMA DNS dan ALAMAT IP PRIBADI untuk digunakan nanti.

    Public and private IP addresses.

Menginstal dan mengonfigurasi Bind (perangkat lunak DNS)

  1. Sekarang telusuri ke alamat IP publik dari komputer virtual. Ganti sshuser dengan akun pengguna SSH yang Anda tentukan saat membuat VM. Contoh berikut terhubung ke mesin virtual di 40.68.254.142:

    ssh sshuser@40.68.254.142
    
  2. Untuk menginstal Bind, gunakan perintah berikut dari sesi SSH:

    sudo apt-get update -y
    sudo apt-get install bind9 -y
    
  3. Untuk mengonfigurasi Bind untuk meneruskan permintaan resolusi nama ke server DNS lokal Anda, gunakan teks berikut sebagai konten /etc/bind/named.conf.options file:

    acl goodclients {
        10.0.0.0/16; # Replace with the IP address range of the virtual network
        10.1.0.0/16; # Replace with the IP address range of the on-premises network
        localhost;
        localnets;
    };
    
    options {
            directory "/var/cache/bind";
    
            recursion yes;
    
            allow-query { goodclients; };
    
            forwarders {
            192.168.0.1; # Replace with the IP address of the on-premises DNS server
            };
    
            dnssec-validation auto;
    
            auth-nxdomain no;    # conform to RFC1035
            listen-on { any; };
    };
    

    Penting

    Ganti nilai di goodclients bagian dengan rentang alamat IP jaringan virtual dan jaringan lokal. Bagian ini menentukan alamat dari mana server DNS ini menerima permintaan.

    Ganti 192.168.0.1 entri di forwarders bagian dengan alamat IP server DNS lokal Anda. Entri ini merutekan permintaan DNS ke server DNS lokal Anda untuk resolusi.

    Untuk mengedit file ini, gunakan perintah berikut:

    sudo nano /etc/bind/named.conf.options
    

    Untuk menyimpan file, gunakan Ctrl+X, Y, lalu Enter.

  4. Dari sesi SSH, gunakan perintah berikut:

    hostname -f
    

    Perintah ini mengembalikan nilai yang mirip dengan URI berikut:

    dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
    

    Teks icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net adalah akhiran DNS untuk jaringan virtual ini. Simpan nilai ini, karena akan digunakan nanti.

  5. Untuk mengonfigurasi Bind untuk mengatasi nama DNS untuk sumber daya dalam jaringan virtual, gunakan teks berikut sebagai konten /etc/bind/named.conf.local file:

    // Replace the following with the DNS suffix for your virtual network
    zone "icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net" {
        type forward;
        forwarders {168.63.129.16;}; # The Azure recursive resolver
    };
    

    Penting

    Anda harus mengganti icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net akhiran DNS yang Anda ambil sebelumnya.

    Untuk mengedit file ini, gunakan perintah berikut:

    sudo nano /etc/bind/named.conf.local
    

    Untuk menyimpan file, gunakan Ctrl+X, Y, lalu Enter.

  6. Untuk memulai Bind, gunakan perintah berikut:

    sudo service bind9 restart
    
  7. Untuk memverifikasi bahwa bind dapat mengatasi nama sumber daya di jaringan lokal Anda, gunakan perintah berikut:

    sudo apt install dnsutils
    nslookup dns.mynetwork.net 10.0.0.4
    

    Penting

    Ganti dns.mynetwork.net dengan nama domain (FQDN) sumber daya yang sepenuhnya memenuhi syarat di jaringan lokal Anda.

    Ganti 10.0.0.4 dengan alamat IP internal server DNS kustom Anda di jaringan virtual.

    Output yang dihasilkan mirip dengan teks berikut:

    Server:         10.0.0.4
    Address:        10.0.0.4#53
    
    Non-authoritative answer:
    Name:   dns.mynetwork.net
    Address: 192.168.0.4
    

Mengonfigurasi jaringan virtual untuk menggunakan server DNS kustom

Untuk mengonfigurasi jaringan virtual untuk menggunakan server DNS kustom alih-alih resolver rekursif Azure, gunakan langkah-langkah berikut dari portal Microsoft Azure:

  1. Dari menu kiri, navigasi ke Semua layanan>Penjaringan>Jaringan virtual.

  2. Pilih jaringan virtual Anda dari daftar, yang akan membuka tampilan asali untuk jaringan virtual Anda.

  3. Dari tampilan default, di bawah Pengaturan, pilih Server DNS.

  4. Pilih Kustom, dan masukkan ALAMAT IP PRIBADI server DNS kustom.

  5. Pilih Simpan.

    Set the custom DNS server for the network.

Mengonfigurasi server DNS lokal

Di bagian sebelumnya, Anda mengonfigurasi server DNS kustom untuk meneruskan permintaan ke server DNS lokal. Selanjutnya, Anda harus mengonfigurasi server DNS lokal untuk meneruskan permintaan ke server DNS kustom.

Untuk langkah-langkah tertentu tentang cara mengonfigurasi server DNS Anda, lihat dokumentasi untuk perangkat lunak server DNS Anda. Cari langkah-langkah tentang cara mengonfigurasi penerus bersyarat.

Penerusan bersyarat hanya meneruskan permintaan untuk akhiran DNS tertentu. Dalam hal ini, Anda harus mengonfigurasi forwarder untuk akhiran DNS jaringan virtual. Permintaan untuk akhiran ini harus diteruskan ke alamat IP server DNS kustom.

Teks berikut adalah contoh konfigurasi penerus bersyarat untuk perangkat lunak Bind DNS:

zone "icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net" {
    type forward;
    forwarders {10.0.0.4;}; # The custom DNS server's internal IP address
};

Untuk informasi tentang menggunakan DNS pada Windows Server 2016, lihat dokumentasi Add-DnsServerConditionalForwarderZone...

Setelah mengonfigurasi server DNS lokal, Anda dapat menggunakan jaringan nslookup lokal untuk memverifikasi bahwa Anda dapat mengatasi nama di jaringan virtual. Lihat contoh berikut

nslookup dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net 196.168.0.4

Contoh ini menggunakan server DNS lokal di 196.168.0.4 untuk mengatasi nama server DNS kustom. Ganti alamat IP dengan alamat untuk server DNS lokal. Ganti alamat dnsproxy dengan nama domain server DNS kustom yang sepenuhnya memenuhi syarat.

Opsional: Mengontrol lalu lintas jaringan

Konfigurasikan grup keamanan jaringan atau rute yang ditentukan pengguna (UDR) untuk mengontrol lalu lintas jaringan. NSGs memungkinkan Anda untuk memfilter lalu lintas masuk dan keluar, dan memungkinkan atau menolak lalu lintas. UDR memungkinkan Anda mengontrol bagaimana arus lalu lintas antara sumber daya di jaringan virtual, internet, dan jaringan lokal.

Peringatan

HDInsight memerlukan akses masuk dari alamat IP tertentu di cloud Azure, dan akses keluar yang tidak terbatas. Saat menggunakan NSGs atau UDR untuk mengontrol lalu lintas, Anda harus melakukan langkah-langkah berikut:

  1. Temukan alamat IP untuk lokasi yang berisi jaringan virtual Anda. Untuk daftar IP yang diperlukan berdasarkan lokasi, lihat Alamat IP yang diperlukan.

  2. Untuk alamat IP yang diidentifikasi pada langkah 1, izinkan lalu lintas masuk dari alamat IP tersebut.

    • Jika Anda menggunakan NSG:Izinkan lalu lintas masuk pada port 443 untuk alamat IP.
    • Jika Anda menggunakan UDR: Atur jenis rute Next Hop ke Internet untuk alamat IP.

Untuk contoh penggunaan Azure PowerShell atau Azure CLI untuk membuat NSGs, lihat dokumen Perluas HDInsight dengan Azure Virtual Networks.

Buat Kluster HDInsight

Peringatan

Buat dan konfigurasikan server DNS kustom sebelum menginstal Microsoft Azure HDInsight ke dalam Virtual Network.

Gunakan langkah-langkah dalam Membuat kluster HDInsight menggunakan dokumen portal Microsoft Azure untuk membuat kluster HDInsight.

Peringatan

  • Selama pembuatan kluster, Anda harus memilih lokasi yang berisi jaringan virtual Anda.
  • Di bagian Pengaturan tingkat lanjut konfigurasi, Anda harus memilih jaringan virtual dan subnet yang Anda buat sebelumnya.

Menyambungkan ke HDInsight

Sebagian besar dokumentasi di HDInsight mengasumsikan bahwa Anda memiliki akses ke kluster melalui internet. Misalnya, Anda dapat terhubung ke kluster di https://CLUSTERNAME.azurehdinsight.net. Alamat ini menggunakan gateway publik, yang tidak tersedia jika Anda telah menggunakan NSGs atau UDR untuk membatasi akses dari internet.

Beberapa dokumentasi juga headnodehost mereferensikan saat menyambungkan ke kluster dari sesi SSH. Alamat ini hanya tersedia dari node dalam kluster, dan tidak dapat digunakan pada klien yang terhubung melalui jaringan virtual.

Untuk langsung terhubung ke HDInsight melalui jaringan virtual, gunakan langkah-langkah berikut:

  1. Untuk menemukan nama domain internal yang sepenuhnya memenuhi syarat (FQDN) dari node kluster HDInsight, gunakan salah satu metode berikut:

    $resourceGroupName = "The resource group that contains the virtual network used with HDInsight"
    
    $clusterNICs = Get-AzNetworkInterface -ResourceGroupName $resourceGroupName | where-object {$_.Name -like "*node*"}
    
    $nodes = @()
    foreach($nic in $clusterNICs) {
        $node = new-object System.Object
        $node | add-member -MemberType NoteProperty -name "Type" -value $nic.Name.Split('-')[1]
        $node | add-member -MemberType NoteProperty -name "InternalIP" -value $nic.IpConfigurations.PrivateIpAddress
        $node | add-member -MemberType NoteProperty -name "InternalFQDN" -value $nic.DnsSettings.InternalFqdn
        $nodes += $node
    }
    $nodes | sort-object Type
    
    az network nic list --resource-group <resourcegroupname> --output table --query "[?contains(name,'node')].{NICname:name,InternalIP:ipConfigurations[0].privateIpAddress,InternalFQDN:dnsSettings.internalFqdn}"
    
  2. Untuk menentukan node dan port tempat layanan tersedia, lihat Port yang digunakan oleh layanan Hadoop pada dokumen HDInsight.

    Penting

    Beberapa layanan yang dihosting pada node kepala hanya aktif pada satu node pada satu waktu. Jika Anda mencoba mengakses layanan pada satu node kepala dan mengembalikan kesalahan 404, beralihlah ke node kepala lainnya.

    Misalnya, Apache Ambari hanya aktif pada satu node kepala pada satu waktu. Jika Anda mencoba mengakses Ambari pada satu node kepala dan mengembalikan kesalahan 404, maka akses Anda akan berjalan pada node kepala lainnya.

Langkah berikutnya