Ligar o HDInsight à sua rede no local
Saiba como conectar o HDInsight à sua rede local usando as Redes Virtuais do Azure e um gateway VPN. Este documento fornece informações de planeamento sobre:
- Usando o HDInsight em uma Rede Virtual do Azure que se conecta à sua rede local.
- Configurar a resolução de nomes DNS entre a rede virtual e a rede local.
- Configurar grupos de segurança de rede para restringir o acesso à Internet ao HDInsight.
- Portas fornecidas pelo HDInsight na rede virtual.
Descrição geral
Para permitir que o HDInsight e os recursos na rede ingressada se comuniquem pelo nome, você deve executar as seguintes ações:
- Crie a Rede Virtual do Azure.
- Crie um servidor DNS personalizado na Rede Virtual do Azure.
- Configure a rede virtual para usar o servidor DNS personalizado em vez do Resolvedor Recursivo do Azure padrão.
- Configure o encaminhamento entre o servidor DNS personalizado e o servidor DNS local.
Essas configurações permitem o seguinte comportamento:
- As solicitações de nomes de domínio totalmente qualificados que têm o sufixo DNS para a rede virtual são encaminhadas para o servidor DNS personalizado. Em seguida, o servidor DNS personalizado encaminha essas solicitações para o Resolvedor Recursivo do Azure, que retorna o endereço IP.
- Todas as outras solicitações são encaminhadas para o servidor DNS local. Até mesmo solicitações de recursos públicos da Internet, como microsoft.com, são encaminhadas para o servidor DNS local para resolução de nomes.
No diagrama a seguir, linhas verdes são solicitações de recursos que terminam no sufixo DNS da rede virtual. As linhas azuis são pedidos de recursos na rede local ou na Internet pública.
Pré-requisitos
- Um cliente SSH. Para obter mais informações, veja Ligar ao HDInsight (Apache Hadoop) através de SSH.
- Se estiver usando o PowerShell, você precisará do módulo AZ.
- Se quiser usar a CLI do Azure e ainda não a tiver instalado, consulte Instalar a CLI do Azure.
Criar configuração de rede virtual
Use os seguintes documentos para saber como criar uma Rede Virtual do Azure conectada à sua rede local:
Criar servidor DNS personalizado
Importante
Você deve criar e configurar o servidor DNS antes de instalar o HDInsight na rede virtual.
Estas etapas usam o portal do Azure para criar uma Máquina Virtual do Azure. Para outras maneiras de criar uma máquina virtual, consulte Criar VM - CLI do Azure e Criar VM - Azure PowerShell. Para criar uma VM Linux que usa o software Bind DNS, use as seguintes etapas:
Inicie sessão no portal do Azure.
No menu superior, selecione + Criar um recurso.
Selecione Computar>máquina virtual para ir para a página Criar uma máquina virtual.
Na guia Noções básicas, insira as seguintes informações:
Campo Value Subscrição Selecione sua assinatura apropriada. Grupo de recursos Selecione o grupo de recursos que contém a rede virtual criada anteriormente. Virtual machine name Insira um nome amigável que identifique essa máquina virtual. Este exemplo usa DNSProxy. País/Região Selecione a mesma região da rede virtual criada anteriormente. Nem todos os tamanhos de VM estão disponíveis em todas as regiões. Opções de disponibilidade Selecione o nível de disponibilidade desejado. O Azure oferece uma variedade de opções para gerenciar a disponibilidade e a resiliência de seus aplicativos. Arquitete sua solução para usar VMs replicadas em zonas de disponibilidade ou conjuntos de disponibilidade para proteger seus aplicativos e dados contra interrupções do datacenter e eventos de manutenção. Este exemplo usa Nenhuma redundância de infraestrutura necessária. Image Deixe no Ubuntu Server 18.04 LTS. Authentication type Senha ou chave pública SSH: O método de autenticação para a conta SSH. Recomendamos o uso de chaves públicas, pois elas são mais seguras. Este exemplo usa Password. Para obter mais informações, consulte o documento Criar e usar chaves SSH para VMs Linux. User name Insira o nome de usuário do administrador para a VM. Este exemplo usa sshuser. Senha ou chave pública SSH O campo disponível é determinado pela sua escolha para o tipo de autenticação. Insira o valor apropriado. Portas de entrada públicas Selecione Permitir portas selecionadas. Em seguida, selecione SSH (22) na lista suspensa Selecionar portas de entrada. Deixe outras entradas nos valores padrão e selecione a guia Rede .
Na guia Rede, insira as seguintes informações:
Campo Value Rede virtual Selecione a rede virtual que você criou anteriormente. Sub-rede Selecione a sub-rede padrão para a rede virtual que você criou anteriormente. Não selecione a sub-rede usada pelo gateway VPN. IP público Use o valor preenchido automaticamente. Deixe outras entradas nos valores padrão e selecione Revisar + criar.
Na guia Revisão + criação, selecione Criar para criar a máquina virtual.
Rever endereços IP
Depois que a máquina virtual tiver sido criada, você receberá uma notificação de implantação bem-sucedida com um botão Ir para recurso . Selecione Ir para recurso para ir para sua nova máquina virtual. A partir da vista predefinida para a sua nova máquina virtual, siga estes passos para identificar os endereços IP associados:
Em Configurações, selecione Propriedades.
Observe os valores para PUBLIC IP ADDRESS/DNS NAME LABEL e PRIVATE IP ADDRESS para uso posterior.
Instalar e configurar o Bind (software DNS)
Use SSH para se conectar ao endereço IP público da máquina virtual. Substitua
sshuser
pela conta de usuário SSH especificada ao criar a VM. O exemplo a seguir se conecta a uma máquina virtual em 40.68.254.142:ssh sshuser@40.68.254.142
Para instalar o Bind, use os seguintes comandos da sessão SSH:
sudo apt-get update -y sudo apt-get install bind9 -y
Para configurar Bind para encaminhar solicitações de resolução de nomes para seu servidor DNS local, use o seguinte texto como o conteúdo do
/etc/bind/named.conf.options
arquivo: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; }; };
Importante
Substitua os
goodclients
valores na seção pelo intervalo de endereços IP da rede virtual e da rede local. Esta seção define os endereços dos quais esse servidor DNS aceita solicitações.Substitua
forwarders
a192.168.0.1
entrada na seção pelo endereço IP do seu servidor DNS local. Essa entrada roteia solicitações DNS para o servidor DNS local para resolução.Para editar esse arquivo, use o seguinte comando:
sudo nano /etc/bind/named.conf.options
Para guardar o ficheiro, utilize Ctrl+X, Y e, em seguida , Enter.
Na sessão SSH, use o seguinte comando:
hostname -f
Este comando retorna um valor semelhante ao seguinte texto:
dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
O
icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
texto é o sufixo DNS para esta rede virtual. Guarde este valor, tal como é utilizado mais tarde.Para configurar Bind para resolver nomes DNS para recursos dentro da rede virtual, use o seguinte texto como o conteúdo do
/etc/bind/named.conf.local
arquivo:// 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 };
Importante
Você deve substituir o
icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
pelo sufixo DNS recuperado anteriormente.Para editar esse arquivo, use o seguinte comando:
sudo nano /etc/bind/named.conf.local
Para guardar o ficheiro, utilize Ctrl+X, Y e, em seguida , Enter.
Para iniciar Bind, use o seguinte comando:
sudo service bind9 restart
Para verificar se a associação pode resolver os nomes dos recursos em sua rede local, use os seguintes comandos:
sudo apt install dnsutils nslookup dns.mynetwork.net 10.0.0.4
Importante
Substitua
dns.mynetwork.net
pelo nome de domínio totalmente qualificado (FQDN) de um recurso em sua rede local.Substitua
10.0.0.4
pelo endereço IP interno do seu servidor DNS personalizado na rede virtual.A resposta é semelhante ao seguinte texto:
Server: 10.0.0.4 Address: 10.0.0.4#53 Non-authoritative answer: Name: dns.mynetwork.net Address: 192.168.0.4
Configurar a rede virtual para usar o servidor DNS personalizado
Para configurar a rede virtual para usar o servidor DNS personalizado em vez do resolvedor recursivo do Azure, use as seguintes etapas do portal do Azure:
No menu à esquerda, navegue até Todos os serviços>de rede>Redes virtuais.
Selecione sua rede virtual na lista, o que abrirá a visualização padrão para sua rede virtual.
Na vista predefinida, em Definições, selecione Servidores DNS.
Selecione Personalizado e insira o ENDEREÇO IP PRIVADO do servidor DNS personalizado.
Selecione Guardar.
Configurar servidor DNS local
Na seção anterior, você configurou o servidor DNS personalizado para encaminhar solicitações para o servidor DNS local. Em seguida, você deve configurar o servidor DNS local para encaminhar solicitações para o servidor DNS personalizado.
Para obter etapas específicas sobre como configurar o servidor DNS, consulte a documentação do software do servidor DNS. Procure as etapas sobre como configurar um encaminhador condicional.
Um encaminhamento condicional encaminha apenas solicitações para um sufixo DNS específico. Nesse caso, você deve configurar um encaminhador para o sufixo DNS da rede virtual. As solicitações para esse sufixo devem ser encaminhadas para o endereço IP do servidor DNS personalizado.
O texto a seguir é um exemplo de uma configuração de encaminhador condicional para o software DNS de ligação :
zone "icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net" {
type forward;
forwarders {10.0.0.4;}; # The custom DNS server's internal IP address
};
Para obter informações sobre como usar o DNS no Windows Server 2016, consulte a documentação Add-DnsServerConditionalForwarderZone...
Depois de configurar o servidor DNS local, você pode usar nslookup
a partir da rede local para verificar se pode resolver nomes na rede virtual. O exemplo a seguir
nslookup dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net 196.168.0.4
Este exemplo usa o servidor DNS local em 196.168.0.4 para resolver o nome do servidor DNS personalizado. Substitua o endereço IP pelo do servidor DNS local. Substitua o dnsproxy
endereço pelo nome de domínio totalmente qualificado do servidor DNS personalizado.
Opcional: Controlar o tráfego de rede
Você pode usar grupos de segurança de rede (NSG) ou rotas definidas pelo usuário (UDR) para controlar o tráfego de rede. Os NSGs permitem filtrar o tráfego de entrada e saída e permitir ou negar o tráfego. As UDRs permitem controlar como o tráfego flui entre recursos na rede virtual, na Internet e na rede local.
Aviso
O HDInsight requer acesso de entrada de endereços IP específicos na nuvem do Azure e acesso de saída irrestrito. Ao usar NSGs ou UDRs para controlar o tráfego, você deve executar as seguintes etapas:
Localize os endereços IP para o local que contém sua rede virtual. Para obter uma lista de IPs necessários por local, consulte Endereços IP necessários.
Para os endereços IP identificados na etapa 1, permita o tráfego de entrada desses endereços IP.
- Se você estiver usando o NSG: permita o tráfego de entrada na porta 443 para os endereços IP.
- Se você estiver usando UDR: defina o tipo Next Hop da rota para Internet para os endereços IP.
Para obter um exemplo de como usar o Azure PowerShell ou a CLI do Azure para criar NSGs, consulte o documento Estender o HDInsight com Redes Virtuais do Azure.
Criar o cluster HDInsight
Aviso
Você deve configurar o servidor DNS personalizado antes de instalar o HDInsight na rede virtual.
Use as etapas em Criar um cluster HDInsight usando o documento do portal do Azure para criar um cluster HDInsight.
Aviso
- Durante a criação do cluster, você deve escolher o local que contém sua rede virtual.
- Na parte Configurações avançadas da configuração, você deve selecionar a rede virtual e a sub-rede que você criou anteriormente.
Conectando-se ao HDInsight
A maioria da documentação do HDInsight pressupõe que você tenha acesso ao cluster pela Internet. Por exemplo, que pode ligar ao cluster em https://CLUSTERNAME.azurehdinsight.net
. Esse endereço usa o gateway público, que não estará disponível se você tiver usado NSGs ou UDRs para restringir o acesso da Internet.
Algumas documentações também fazem referência headnodehost
ao conectar-se ao cluster a partir de uma sessão SSH. Esse endereço só está disponível a partir de nós dentro de um cluster e não pode ser usado em clientes conectados pela rede virtual.
Para se conectar diretamente ao HDInsight por meio da rede virtual, use as seguintes etapas:
Para descobrir os nomes de domínio internos totalmente qualificados dos nós de cluster HDInsight, use um dos seguintes métodos:
$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}"
Para determinar a porta na qual um serviço está disponível, consulte o documento Portas usadas pelos serviços Apache Hadoop no HDInsight .
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 falhar, alterne para o outro nó principal.
Por exemplo, o Apache Ambari só está ativo em um nó principal de cada vez. Se você tentar acessar o Ambari em um nó principal e ele retornar um erro 404, ele estará sendo executado no outro nó principal.
Próximos passos
Para obter mais informações sobre como usar o HDInsight em uma rede virtual, consulte Planejar uma implantação de rede virtual para clusters do Azure HDInsight.
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.