Planear uma rede virtual para o Azure HDInsight
Este artigo fornece informações básicas sobre como usar as Redes Virtuais do Azure (VNets) com o Azure HDInsight. Ele também discute as decisões de design e implementação que devem ser tomadas antes que você possa implementar uma rede virtual para seu cluster HDInsight. Quando a fase de planejamento estiver concluída, você poderá prosseguir para Criar redes virtuais para clusters do Azure HDInsight. Para obter mais informações sobre endereços IP de gerenciamento do HDInsight necessários para configurar corretamente os NSGs (grupos de segurança de rede) e rotas definidas pelo usuário, consulte Endereços IP de gerenciamento do HDInsight.
O uso de uma Rede Virtual do Azure habilita os seguintes cenários:
- Conectando-se ao HDInsight diretamente de uma rede local.
- Ligar o HDInsight a armazenamentos de dados numa rede Virtual do Azure.
- Acesso direto aos serviços do Apache Hadoop que não estão disponíveis publicamente pela Internet. Por exemplo, Apache Kafka APIs ou Apache HBase Java API.
Importante
A criação de um cluster HDInsight em uma VNET criará vários recursos de rede, como NICs e balanceadores de carga. Não exclua nem modifique esses recursos de rede, pois eles são necessários para que o cluster funcione corretamente com a VNET.
Planeamento
A seguir estão as perguntas que você deve responder ao planejar a instalação do HDInsight em uma rede virtual:
Você precisa instalar o HDInsight em uma rede virtual existente? Ou está a criar uma nova rede?
Se estiver a utilizar uma rede virtual existente, poderá ter de modificar a configuração de rede antes de poder instalar o HDInsight. Para obter mais informações, consulte a seção HDInsight adicionado a uma rede virtual existente.
Deseja conectar a rede virtual que contém o HDInsight a outra rede virtual ou à sua rede local?
Para trabalhar facilmente com recursos em redes, talvez seja necessário criar um DNS personalizado e configurar o encaminhamento de DNS. Para obter mais informações, consulte a seção conectando várias redes .
Deseja restringir/redirecionar o tráfego de entrada ou de saída para o HDInsight?
O HDInsight deve ter comunicação irrestrita com endereços IP específicos no data center do Azure. Há também várias portas que devem ser permitidas através de firewalls para comunicação com o cliente. Para obter mais informações, consulte Controlar o tráfego de rede.
Adicionar o HDInsight a uma rede virtual existente
Use as etapas nesta seção para descobrir como adicionar um novo HDInsight a uma Rede Virtual do Azure existente.
Nota
- Não é possível adicionar um cluster HDInsight existente a uma rede virtual.
- A VNET e o cluster que está sendo criado devem estar na mesma assinatura.
Você está usando um modelo de implantação clássico ou do Resource Manager para a rede virtual?
O HDInsight 3.4 e superior requer uma rede virtual do Resource Manager. As versões anteriores do HDInsight exigiam uma rede virtual clássica.
Se a sua rede existente for uma rede virtual clássica, então você deve criar uma rede virtual do Resource Manager e, em seguida, conectar as duas. Conectando VNets clássicas a novas VNets.
Uma vez associado, o HDInsight instalado na rede do Resource Manager pode interagir com recursos na rede clássica.
Você usa grupos de segurança de rede, rotas definidas pelo usuário ou Dispositivos de Rede Virtual para restringir o tráfego de entrada ou saída da rede virtual?
Como um serviço gerenciado, o HDInsight requer acesso irrestrito a vários endereços IP no data center do Azure. Para permitir a comunicação com esses endereços IP, atualize todos os grupos de segurança de rede existentes ou rotas definidas pelo usuário.
O HDInsight hospeda vários serviços, que usam várias portas. Não bloqueie o tráfego para essas portas. Para obter uma lista de portas a serem permitidas por meio de firewalls de dispositivos virtuais, consulte a seção Segurança.
Para localizar sua configuração de segurança existente, use os seguintes comandos do Azure PowerShell ou da CLI do Azure:
Grupos de segurança de rede
Substitua
RESOURCEGROUP
pelo nome do grupo de recursos que contém a rede virtual e digite o comando:Get-AzNetworkSecurityGroup -ResourceGroupName "RESOURCEGROUP"
az network nsg list --resource-group RESOURCEGROUP
Para obter mais informações, consulte Solucionar problemas de documentos de grupos de segurança de rede.
Importante
As regras do grupo de segurança de rede são aplicadas em ordem com base na prioridade da regra. A primeira regra que corresponde ao padrão de tráfego é aplicada, e nenhuma outra é aplicada para esse tráfego. Ordenar regras do mais permissivo para o menos permissivo. Para obter mais informações, consulte o documento Filtrar tráfego de rede com grupos de segurança de rede.
Rotas definidas pelo utilizador
Substitua
RESOURCEGROUP
pelo nome do grupo de recursos que contém a rede virtual e digite o comando:Get-AzRouteTable -ResourceGroupName "RESOURCEGROUP"
az network route-table list --resource-group RESOURCEGROUP
Para obter mais informações, consulte o documento Diagnosticar um problema de roteamento de máquina virtual.
Crie um cluster HDInsight e selecione a Rede Virtual do Azure durante a configuração. Use as etapas nos seguintes documentos para entender o processo de criação do cluster:
- Create HDInsight using the Azure portal (Criar o HDInsight com o portal do Azure)
- Create HDInsight using Azure PowerShell (Criar o HDInsight com o Azure PowerShell)
- Criar o HDInsight usando a CLI clássica do Azure
- Criar o HDInsight usando um modelo do Azure Resource Manager
Importante
Adicionar o HDInsight a uma rede virtual é uma etapa de configuração opcional. Certifique-se de selecionar a rede virtual ao configurar o cluster.
Conectando várias redes
O maior desafio com uma configuração multi-rede é a resolução de nomes entre as redes.
O Azure fornece resolução de nomes para serviços do Azure instalados em uma rede virtual. Essa resolução de nomes integrada permite que o HDInsight se conecte aos seguintes recursos usando um FQDN (nome de domínio totalmente qualificado):
Qualquer recurso que esteja disponível na internet. Por exemplo, microsoft.com, windowsupdate.com.
Qualquer recurso que esteja na mesma Rede Virtual do Azure, usando o nome DNS interno do recurso. Por exemplo, ao usar a resolução de nomes padrão, seguem-se exemplos de nomes DNS internos atribuídos a nós de trabalho do HDInsight:
<nome do trabalhador1.0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net>
<nome do trabalhador2.0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net>
Ambos os nós podem se comunicar diretamente entre si, e outros nós no HDInsight, usando nomes DNS internos.
A resolução de nomes padrão não permite que o HDInsight resolva os nomes de recursos em redes que ingressaram na rede virtual. Por exemplo, é comum associar a sua rede local à rede virtual. Com apenas a resolução de nomes padrão, o HDInsight não pode acessar recursos na rede local pelo nome. O oposto também é verdadeiro, os recursos em sua rede local não podem acessar recursos na rede virtual pelo nome.
Aviso
Você deve criar o servidor DNS personalizado e configurar a rede virtual para usá-lo antes de criar o cluster HDInsight.
Para habilitar a resolução de nomes entre a rede virtual e os recursos em redes associadas, você deve executar as seguintes ações:
Crie um servidor DNS personalizado na Rede Virtual do Azure onde pretende instalar o HDInsight.
Configure a rede virtual para usar o servidor DNS personalizado.
Encontre o sufixo DNS atribuído ao Azure para sua rede virtual. Este valor é semelhante a
0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
. Para obter informações sobre como localizar o sufixo DNS, consulte a seção Exemplo: DNS personalizado.Configure o encaminhamento entre os servidores DNS. A configuração depende do tipo de rede remota.
Se a rede remota for uma rede local, configure o DNS da seguinte forma:
DNS personalizado (na rede virtual):
Encaminhe solicitações para o sufixo DNS da rede virtual para o resolvedor recursivo do Azure (168.63.129.16). O Azure lida com solicitações de recursos na rede virtual
Encaminhe todas as outras solicitações para o servidor DNS local. O DNS local lida com todas as outras solicitações de resolução de nomes, até mesmo solicitações de recursos da Internet, como Microsoft.com.
DNS local: encaminha solicitações para o sufixo DNS da rede virtual para o servidor DNS personalizado. Em seguida, o servidor DNS personalizado encaminha para o resolvedor recursivo do Azure.
Essa configuração roteia solicitações de nomes de domínio totalmente qualificados que contêm o sufixo DNS da rede virtual para o servidor DNS personalizado. Todas as outras solicitações (mesmo para endereços públicos da Internet) são tratadas pelo servidor DNS local.
Se a rede remota for outra Rede Virtual do Azure, configure o DNS da seguinte forma:
DNS personalizado (em cada rede virtual):
As solicitações para o sufixo DNS das redes virtuais são encaminhadas para os servidores DNS personalizados. O DNS em cada rede virtual é responsável pela resolução de recursos dentro de sua rede.
Encaminhe todas as outras solicitações para o resolvedor recursivo do Azure. O resolvedor recursivo é responsável por resolver recursos locais e da Internet.
O servidor DNS de cada rede encaminha solicitações para a outra, com base no sufixo DNS. Outras solicitações são resolvidas usando o resolvedor recursivo do Azure.
Para obter um exemplo de cada configuração, consulte a seção Exemplo: DNS personalizado.
Para obter mais informações, consulte o documento Resolução de nomes para VMs e instâncias de função.
Conecte-se diretamente aos serviços do Apache Hadoop
Você pode se conectar ao cluster em https://CLUSTERNAME.azurehdinsight.net
. Esse endereço usa um IP público, que pode não estar acessível se você tiver usado NSGs para restringir o tráfego de entrada da Internet. Além disso, ao implantar o cluster em uma rede virtual, você pode acessá-lo usando o ponto de extremidade https://CLUSTERNAME-int.azurehdinsight.net
privado. Este ponto de extremidade é resolvido para um IP privado dentro da rede virtual para acesso ao cluster.
Para se conectar ao Apache Ambari e outras páginas da Web através da rede virtual, use as seguintes etapas:
Para descobrir os FQDN (nomes de domínio totalmente qualificados) internos dos nós de cluster HDInsight, use um dos seguintes métodos:
Substitua
RESOURCEGROUP
pelo nome do grupo de recursos que contém a rede virtual e digite o comando:$clusterNICs = Get-AzNetworkInterface -ResourceGroupName "RESOURCEGROUP" | 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 RESOURCEGROUP --output table --query "[?contains(name, 'node')].{NICname:name,InternalIP:ipConfigurations[0].privateIpAddress,InternalFQDN:dnsSettings.internalFqdn}"
Na lista de nós retornados, localize o FQDN para os nós principais e use os FQDNs para se conectar ao Ambari e outros serviços Web. Por exemplo, use
http://<headnode-fqdn>:8080
para acessar Ambari.Importante
Alguns serviços hospedados nos nós principais estão ativos apenas em um nó de cada vez. Se você tentar acessar um serviço em um nó principal e ele retornar um erro 404, alterne para o outro nó principal.
Para determinar o nó e a porta em que um serviço está disponível, consulte o documento Portas usadas pelos serviços Hadoop no HDInsight .
Balanceamento de carga
Quando você cria um cluster HDInsight, vários balanceadores de carga também são criados. Devido à desativação do balanceador de carga básico, o tipo de balanceador de carga está no nível SKU padrão, que tem certas restrições. Os fluxos de entrada para os balanceadores de carga padrão são fechados, a menos que permitido por um grupo de segurança de rede. Talvez seja necessário vincular uma segurança de rede à sua sub-rede e configurar as regras de segurança de rede.
Há vários métodos de conectividade de saída habilitados para o balanceador de carga padrão. Vale a pena notar que o acesso de saída padrão será desativado em breve. Se um gateway NAT for adotado para fornecer acesso à rede de saída, a sub-rede não será capaz com o balanceador de carga básico. Se você pretende vincular um gateway NAT a uma sub-rede, não deve haver nenhum balanceador de carga básico existente nessa sub-rede. Com o gateway NAT como método de acesso de saída, um cluster HDInsight recém-criado não pode compartilhar a mesma sub-rede com clusters HDInsight criados anteriormente com balanceadores de carga básicos.
Outra restrição é que os balanceadores de carga do HDInsight não devem ser excluídos ou modificados. Quaisquer alterações nas regras do balanceador de carga serão substituídas durante determinados eventos de manutenção, como renovações de certificados. Se os balanceadores de carga forem modificados e isso afetar a funcionalidade do cluster, talvez seja necessário recriar o cluster.
Próximos passos
- Para obter exemplos de código e exemplos de criação de Redes Virtuais do Azure, consulte Criar redes virtuais para clusters do Azure HDInsight.
- Para obter um exemplo completo de configuração do HDInsight para se conectar a uma rede local, consulte Conectar o HDInsight a uma rede local.
- Para obter mais informações sobre redes virtuais do Azure, consulte a Visão geral da Rede Virtual do Azure.
- Para obter mais informações sobre grupos de segurança de rede, consulte Grupos de segurança de rede.
- Para obter mais informações sobre rotas definidas pelo usuário, consulte Rotas definidas pelo usuário e encaminhamento de IP.
- Para obter mais informações sobre como controlar o tráfego, incluindo a integração com firewall, consulte Controlar o tráfego de rede.