HDInsight’ı şirket içi ağınıza bağlama
Azure Sanal Ağ ve VPN ağ geçidi kullanarak HDInsight'ı şirket içi ağınıza bağlamayı öğrenin. Bu belgede aşağıdakiler hakkında planlama bilgileri sağlanır:
- Şirket içi ağınıza bağlanan bir Azure Sanal Ağ HDInsight kullanma.
- Sanal ağ ile şirket içi ağınız arasında DNS ad çözümlemesini yapılandırma.
- HDInsight'a İnternet erişimini kısıtlamak için ağ güvenlik gruplarını yapılandırma.
- Sanal ağda HDInsight tarafından sağlanan bağlantı noktaları.
Genel bakış
Birleştirilmiş ağdaki HDInsight ve kaynakların ada göre iletişim kurmasına izin vermek için aşağıdaki eylemleri gerçekleştirmeniz gerekir:
- Azure Sanal Ağ oluşturun.
- Azure Sanal Ağ özel bir DNS sunucusu oluşturun.
- Sanal ağı varsayılan Azure Özyinelemeli Çözümleyicisi yerine özel DNS sunucusunu kullanacak şekilde yapılandırın.
- Özel DNS sunucusu ile şirket içi DNS sunucunuz arasında iletmeyi yapılandırın.
Bu yapılandırmalar aşağıdaki davranışı etkinleştirir:
- Sanal ağ için DNS soneki olan tam etki alanı adları istekleri özel DNS sunucusuna iletilir. Özel DNS sunucusu daha sonra bu istekleri IP adresini döndüren Azure Özyinelemeli Çözümleyici'ye iletir.
- Diğer tüm istekler şirket içi DNS sunucusuna iletilir. microsoft.com gibi genel İnternet kaynaklarına yönelik istekler bile ad çözümlemesi için şirket içi DNS sunucusuna iletilir.
Aşağıdaki diyagramda, yeşil çizgiler sanal ağın DNS soneki ile biten kaynaklara yönelik isteklerdir. Mavi çizgiler, şirket içi ağdaki veya genel İnternet'teki kaynaklara yönelik isteklerdir.
Önkoşullar
- Bir SSH istemcisi. Daha fazla bilgi için bkz. SSH kullanarak HDInsight'a (Apache Hadoop) bağlanma.
- PowerShell kullanıyorsanız AZ Modülü gerekir.
- Azure CLI'yı kullanmak istiyorsanız ve henüz yüklemediyseniz bkz . Azure CLI'yi yükleme.
Sanal ağ yapılandırması oluşturma
Şirket içi ağınıza bağlı bir Azure Sanal Ağ oluşturmayı öğrenmek için aşağıdaki belgeleri kullanın:
Özel DNS sunucusu oluşturma
Önemli
HDInsight'ı sanal ağa yüklemeden önce DNS sunucusunu oluşturup yapılandırmanız gerekir.
Bu adımlarda , Azure sanal makinesi oluşturmak için Azure portalı kullanılır. Sanal makine oluşturmanın diğer yolları için bkz . VM oluşturma - Azure CLI ve VM oluşturma - Azure PowerShell. Bind DNS yazılımını kullanan bir Linux VM oluşturmak için aşağıdaki adımları kullanın:
Azure Portal’ında oturum açın.
Üstteki menüden + Kaynak oluştur'u seçin.
Sanal makine oluştur sayfasına gitmek için İşlem>Sanal makinesi'ni seçin.
Temel Bilgiler sekmesinde aşağıdaki bilgileri girin:
Diğer girdileri varsayılan değerlerde bırakın ve ardından Ağ sekmesini seçin.
Ağ sekmesinde aşağıdaki bilgileri girin:
Alan Değer Sanal ağ Daha önce oluşturduğunuz sanal ağı seçin. Alt ağ Daha önce oluşturduğunuz sanal ağ için varsayılan alt ağı seçin. VPN ağ geçidi tarafından kullanılan alt ağı seçmeyin. Genel IP Otomatik doldurulan değeri kullanın. Diğer girdileri varsayılan değerlerde bırakın ve ardından Gözden Geçir + oluştur'u seçin.
Gözden Geçir + oluştur sekmesinde Oluştur'u seçerek sanal makineyi oluşturun.
IP Adreslerini Gözden Geçirme
Sanal makine oluşturulduktan sonra Kaynağa git düğmesiyle dağıtım başarılı bildirimi alırsınız. Yeni sanal makinenize gitmek için Kaynağa git'i seçin. Yeni sanal makinenizin varsayılan görünümünde, ilişkili IP Adreslerini belirlemek için şu adımları izleyin:
Ayarlar'dan Özellikler'i seçin.
Daha sonra kullanmak üzere GENEL IP ADRESI/DNS AD ETIKETI ve ÖZEL IP ADRESI değerlerini not edin.
Bağlamayı yükleme ve yapılandırma (DNS yazılımı)
Sanal makinenin genel IP adresine bağlanmak için SSH kullanın. değerini VM'yi oluştururken belirttiğiniz SSH kullanıcı hesabıyla değiştirin
sshuser
. Aşağıdaki örnek 40.68.254.142 konumundaki bir sanal makineye bağlanır:ssh sshuser@40.68.254.142
Bind'i yüklemek için SSH oturumundan aşağıdaki komutları kullanın:
sudo apt-get update -y sudo apt-get install bind9 -y
Bind'i ad çözümleme isteklerini şirket içi DNS sunucunuza iletecek şekilde yapılandırmak için dosyanın içeriği
/etc/bind/named.conf.options
olarak aşağıdaki metni kullanın: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; }; };
Önemli
bölümündeki değerleri
goodclients
sanal ağın ve şirket içi ağın IP adresi aralığıyla değiştirin. Bu bölüm, bu DNS sunucusunun istekleri kabul eden adresleri tanımlar.bölümündeki girdisini
192.168.0.1
forwarders
şirket içi DNS sunucunuzun IP adresiyle değiştirin. Bu giriş, DNS isteklerini çözümlemek üzere şirket içi DNS sunucunuza yönlendirir.Bu dosyayı düzenlemek için aşağıdaki komutu kullanın:
sudo nano /etc/bind/named.conf.options
Dosyayı kaydetmek için Ctrl+X, Y ve ardından Enter tuşlarını kullanın.
SSH oturumunda aşağıdaki komutu kullanın:
hostname -f
Bu komut aşağıdaki metne benzer bir değer döndürür:
dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
Metin
icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
, bu sanal ağın DNS sonekidir . Bu değeri daha sonra kullanıldığı gibi kaydedin.Bağlama'yı sanal ağ içindeki kaynakların DNS adlarını çözümlemek üzere yapılandırmak için dosyanın içeriği
/etc/bind/named.conf.local
olarak aşağıdaki metni kullanın:// 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 };
Önemli
değerini
icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
daha önce aldığınız DNS soneki ile değiştirmeniz gerekir.Bu dosyayı düzenlemek için aşağıdaki komutu kullanın:
sudo nano /etc/bind/named.conf.local
Dosyayı kaydetmek için Ctrl+X, Y ve ardından Enter tuşlarını kullanın.
Bağlamayı başlatmak için aşağıdaki komutu kullanın:
sudo service bind9 restart
Bağlamanın şirket içi ağınızdaki kaynakların adlarını çözümleyebildiğini doğrulamak için aşağıdaki komutları kullanın:
sudo apt install dnsutils nslookup dns.mynetwork.net 10.0.0.4
Önemli
değerini, şirket içi ağınızdaki bir kaynağın tam etki alanı adı (FQDN) ile değiştirin
dns.mynetwork.net
.değerini sanal ağdaki özel DNS sunucunuzun iç IP adresiyle değiştirin
10.0.0.4
.Yanıt aşağıdaki metne benzer şekilde görünür:
Server: 10.0.0.4 Address: 10.0.0.4#53 Non-authoritative answer: Name: dns.mynetwork.net Address: 192.168.0.4
Sanal ağı özel DNS sunucusunu kullanacak şekilde yapılandırma
Sanal ağı Azure özyinelemeli çözümleyicisi yerine özel DNS sunucusunu kullanacak şekilde yapılandırmak için Azure portalından aşağıdaki adımları kullanın:
Sol menüden Tüm hizmetler>Ağ>Sanal ağları'na gidin.
Listeden sanal ağınızı seçin. Bu seçenek sanal ağınız için varsayılan görünümü açar.
Varsayılan görünümde, Ayarlar'ın altında DNS sunucuları'nı seçin.
Özel'i seçin ve özel DNS sunucusunun ÖZEL IP ADRESINI girin.
Kaydet'i seçin.
Şirket içi DNS sunucusunu yapılandırma
Önceki bölümde, istekleri şirket içi DNS sunucusuna iletmek için özel DNS sunucusunu yapılandırmıştınız. Ardından, istekleri özel DNS sunucusuna iletmek için şirket içi DNS sunucusunu yapılandırmanız gerekir.
DNS sunucunuzu yapılandırmayla ilgili belirli adımlar için DNS sunucusu yazılımınızın belgelerine bakın. Koşullu iletici yapılandırma adımlarını arayın.
Koşullu iletme yalnızca belirli bir DNS soneki için istekleri iletir. Bu durumda, sanal ağın DNS soneki için bir iletici yapılandırmanız gerekir. Bu sonek istekleri özel DNS sunucusunun IP adresine iletilmelidir.
Aşağıdaki metin, Bind DNS yazılımı için koşullu iletici yapılandırması örneğidir:
zone "icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net" {
type forward;
forwarders {10.0.0.4;}; # The custom DNS server's internal IP address
};
Windows Server 2016'da DNS kullanma hakkında bilgi için Add-DnsServerConditionalForwarderZone belgelerine bakın...
Şirket içi DNS sunucusunu yapılandırdıktan sonra, şirket içi ağı kullanarak sanal ağdaki adları çözümleyebildiğinizi doğrulayabilirsiniz nslookup
. Aşağıdaki örnek
nslookup dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net 196.168.0.4
Bu örnek, özel DNS sunucusunun adını çözümlemek için 196.168.0.4 konumundaki şirket içi DNS sunucusunu kullanır. IP adresini şirket içi DNS sunucusu için olan adresle değiştirin. dnsproxy
adresi, özel DNS sunucusunun tam etki alanı adıyla değiştirin.
İsteğe bağlı: Ağ trafiğini denetleme
Ağ trafiğini denetlemek için ağ güvenlik gruplarını (NSG) veya kullanıcı tanımlı yolları (UDR) kullanabilirsiniz. NSG'ler gelen ve giden trafiği filtrelemenize ve trafiğe izin vermenizi veya trafiği reddetmenizi sağlar. UDR'ler sanal ağdaki, İnternet'teki ve şirket içi ağdaki kaynaklar arasında trafiğin nasıl aktığını denetlemenize olanak tanır.
Uyarı
HDInsight, Azure bulutundaki belirli IP adreslerinden gelen erişim ve sınırsız giden erişim gerektirir. Trafiği denetlemek için NSG'leri veya UDF'leri kullanırken aşağıdaki adımları gerçekleştirmeniz gerekir:
Sanal ağınızı içeren konumun IP adreslerini bulun. Konuma göre gerekli IP'lerin listesi için bkz . Gerekli IP adresleri.
1. adımda tanımlanan IP adresleri için bu IP adreslerinden gelen trafiğe izin verin.
- NSG kullanıyorsanız: IP adresleri için 443 numaralı bağlantı noktasında gelen trafiğe izin verin.
- UDR kullanıyorsanız: IP adresleri için yolun Sonraki Atlama türünü İnternet olarak ayarlayın.
NSG oluşturmak için Azure PowerShell veya Azure CLI kullanma örneği için HDInsight'ı Azure Sanal Ağ s ile genişletme belgesine bakın.
HDInsight kümesi oluşturma
Uyarı
Sanal ağa HDInsight yüklemeden önce özel DNS sunucusunu yapılandırmanız gerekir.
HDInsight kümesi oluşturmak için Azure portalını kullanarak HDInsight kümesi oluşturma belgesindeki adımları kullanın.
Uyarı
- Küme oluşturma sırasında, sanal ağınızı içeren konumu seçmeniz gerekir.
- Yapılandırmanın Gelişmiş ayarlar bölümünde, daha önce oluşturduğunuz sanal ağı ve alt ağı seçmeniz gerekir.
HDInsight'a bağlanma
HDInsight'ta çoğu belge, kümeye İnternet üzerinden erişiminiz olduğunu varsayar. Örneğin, https://CLUSTERNAME.azurehdinsight.net
konumundaki kümeye bağlanabildiğiniz kabul edilir. Bu adres, İnternet'ten erişimi kısıtlamak için NSG'leri veya UDF'leri kullandıysanız kullanılamayan genel ağ geçidini kullanır.
Bazı belgeler ayrıca bir SSH oturumundan kümeye bağlanırken başvurur headnodehost
. Bu adres yalnızca küme içindeki düğümlerden kullanılabilir ve sanal ağ üzerinden bağlanan istemcilerde kullanılamaz.
Sanal ağ üzerinden HDInsight'a doğrudan bağlanmak için aşağıdaki adımları kullanın:
HDInsight küme düğümlerinin iç tam etki alanı adlarını bulmak için aşağıdaki yöntemlerden birini kullanın:
$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}"
Bir hizmetin kullanılabilir olduğu bağlantı noktasını belirlemek için HDInsight üzerinde Apache Hadoop hizmetleri tarafından kullanılan bağlantı noktaları belgesine bakın.
Önemli
Baş düğümlerde barındırılan bazı hizmetler aynı anda yalnızca bir düğümde etkindir. Bir baş düğümündeki bir hizmete erişmeyi denerseniz ve hizmet başarısız olursa, diğer baş düğüme geçin.
Örneğin, Apache Ambari aynı anda yalnızca bir baş düğümde etkindir. Ambari'ye bir baş düğümünde erişmeyi denerseniz ve 404 hatası döndürürse, diğer baş düğümde çalışıyor demektir.
Sonraki adımlar
Sanal ağda HDInsight kullanma hakkında daha fazla bilgi için bkz . Azure HDInsight kümeleri için sanal ağ dağıtımı planlama.
Azure sanal ağları hakkında daha fazla bilgi için bkz. Azure Sanal Ağ genel bakış.
Ağ güvenlik grupları hakkında daha fazla bilgi için bkz . Ağ güvenlik grupları.
Kullanıcı tanımlı yollar hakkında daha fazla bilgi için bkz . Kullanıcı tanımlı yollar ve IP iletme.