As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Migre dados de um ambiente Hadoop local para o Amazon S3 usando com a AWS para o Amazon S3 DistCp PrivateLink
Criado por Jason Owens (AWS), Andres Cantor (AWS), Jeff Klopfenstein (AWS), Bruno Rocha Oliveira (AWS) e Samuel Schmidt (AWS)
Resumo
Esse padrão demonstra como migrar praticamente qualquer quantidade de dados de um ambiente Apache Hadoop local para a nuvem da Amazon Web Services (AWS) usando a ferramenta de código aberto Apache com a DistCpAWS PrivateLink para o Amazon Simple Storage Service (Amazon S3). Em vez de usar a Internet pública ou uma solução de proxy para migrar dados, você pode usar a AWS PrivateLink para Amazon S3 para migrar dados para o Amazon S3 por meio de uma conexão de rede privada entre seu datacenter local e uma Amazon Virtual Private Cloud (Amazon VPC). Se você usar entradas de DNS no Amazon Route 53 ou adicionar entradas no arquivo /etc/hosts em todos os nós do seu cluster Hadoop on-premises, você será automaticamente direcionado para o endpoint correto da interface.
Este guia fornece instruções de uso DistCp para migrar dados para a nuvem da AWS. DistCp é a ferramenta mais usada, mas outras ferramentas de migração estão disponíveis. Por exemplo, você pode usar ferramentas off-line da AWS, como AWS Snowball ou AWS Snowmobile, ou ferramentas online da AWS, como AWS Storage Gateway ou AWS. DataSync Além disso, você pode usar outras ferramentas de código aberto, como o NiFiApache.
Pré-requisitos e limitações
Pré-requisitos
Uma conta AWS ativa com uma conexão de rede privada entre seu datacenter on-premises e a Nuvem AWS
Hadoop, instalado localmente com DistCp
Um usuário do Hadoop com acesso aos dados de migração no Sistema de Arquivos Distribuído do Hadoop (HDFS)
AWS Command Line Interface (AWS CLI), instalada e configurada
Permissões para colocar objetos em um bucket do S3
Limitações
As limitações da nuvem privada virtual (VPC) se aplicam à AWS PrivateLink para o Amazon S3. Para obter mais informações, consulte Propriedades e limitações do endpoint da interface e PrivateLink cotas da AWS ( PrivateLink documentação da AWS).
A AWS PrivateLink para Amazon S3 não oferece suporte ao seguinte:
Arquitetura
Pilha de tecnologia de origem
Pilha de tecnologias de destino
Arquitetura de destino
O diagrama mostra como o administrador do Hadoop usa DistCp para copiar dados de um ambiente local por meio de uma conexão de rede privada, como o AWS Direct Connect, para o Amazon S3 por meio de um endpoint de interface do Amazon S3.
Serviços da AWS
O AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
A Amazon Virtual Private Cloud (Amazon VPC) ajuda a iniciar recursos da AWS em uma rede virtual definida por você. Essa rede virtual é semelhante a uma rede tradicional que você operaria no próprio datacenter, com os benefícios de usar a infraestrutura escalável da AWS.
Outras ferramentas
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|
Crie um endpoint para a AWS PrivateLink para o Amazon S3. | Faça login no Console de Gerenciamento da AWS e abra o console do Amazon VPC. No painel de navegação, selecione Endpoints e Criar endpoint. Para Service category (Categoria de serviço), escolha AWS Services (Serviços da AWS). Na caixa de pesquisa, digite s3 e pressione Enter. Nos resultados da pesquisa, escolha com.amazonaws. < your-aws-region >.s3 nome do serviço em que o valor na coluna Tipo é Interface. Em VPC, escolha sua VPC. Em Sub-redes, escolha sua sub-rede. Para Grupo de segurança, escolha ou crie um grupo de segurança que permite TCP 443. Adicione tags com base em seus requisitos e escolha Criar endpoint.
| Administrador da AWS |
Verifique os endpoints e encontre as entradas de DNS. | Abra o console do Amazon VPC, escolha Endpoints e selecione o endpoint que você criou anteriormente. Na guia Detalhes, encontre a primeira entrada de DNS para nomes DNS. Essa é a entrada do DNS regional. Quando você usa esse nome de DNS, as solicitações alternam entre as entradas de DNS específicas das Zonas de Disponibilidade. Escolha a guia Sub-redes. Você pode encontrar o endereço da interface de rede elástica do endpoint em cada zona de disponibilidade.
| Administrador da AWS |
Verifique as regras do firewall e as configurações de roteamento. | Para confirmar se suas regras de firewall estão abertas e se sua configuração de rede está configurada corretamente, use o Telnet para testar o endpoint na porta 443. Por exemplo: $ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443
Trying 10.104.88.6...
Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com.
...
$ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443
Trying 10.104.71.141...
Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com.
Se você usar a entrada Regional, um teste bem-sucedido mostra que o DNS está alternando entre os dois endereços IP que você pode ver na guia Sub-redes do seu endpoint selecionado no console da Amazon VPC. | Administrador de rede, administrador da AWS |
Configure a resolução de nomes. | Você deve configurar a resolução de nomes para permitir que o Hadoop acesse o endpoint da interface Amazon S3. Não é possível usar o nome do endpoint em si. Em vez disso, você deve resolver <your-bucket-name>.s3.<your-aws-region>.amazonaws.com ou*.s3.<your-aws-region>.amazonaws.com . Para obter mais informações sobre essa limitação de nomenclatura, consulte Apresentando o cliente Hadoop S3A (site do Hadoop). Escolha uma das seguintes opções de configuração: Use o DNS on-premises para resolver o endereço IP privado do endpoint. Você pode substituir o comportamento de todos os compartimentos ou dos compartimentos selecionados. Para obter mais informações, consulte “Opção 2: acessar o Amazon S3 usando zonas de política de resposta do sistema de nomes de domínio (DNS RPZ)” em Acesso híbrido seguro ao Amazon S3 usando a AWS (postagem no blog da PrivateLink AWS). Configure o DNS on-premises para encaminhar condicionalmente o tráfego para os endpoints de entrada do resolvedor na VPC. O tráfego é encaminhado para a Route 53. Para obter mais informações, consulte “Opção 3: Encaminhar solicitações de DNS do local usando os endpoints de entrada do Amazon Route 53 Resolver” em Acesso híbrido seguro ao Amazon S3 usando a AWS (postagem no blog da AWS) PrivateLink. Edite o arquivo /etc/hosts em todos os nós do seu cluster do Hadoop. Essa é uma solução temporária para testes e não é recomendada para produção. Para editar o arquivo /etc/hosts, adicione uma entrada para <your-bucket-name>.s3.<your-aws-region>.amazonaws.com ou s3.<your-aws-region>.amazonaws.com . O arquivo /etc/hosts não pode ter vários endereços IP para uma entrada. Você deve escolher um único endereço IP de uma das zonas de disponibilidade, que então se torna um único ponto de falha.
| Administrador da AWS |
Configure a autenticação para o Amazon S3. | Para se autenticar no Amazon S3 por meio do Hadoop, recomendamos que você exporte credenciais de função temporárias para o ambiente do Hadoop. Para obter mais informações, consulte Autenticação com o S3 (site do Hadoop). Para trabalhos de longa duração, você pode criar um usuário e atribuir uma política que tenha permissões para colocar dados somente em um bucket do S3. A chave de acesso e a chave secreta podem ser armazenadas no Hadoop, acessíveis somente para o DistCp trabalho em si e para o administrador do Hadoop. Para obter mais informações sobre como armazenar segredos, consulte Armazenamento de segredos com provedores de credenciais do Hadoop (site do Hadoop). Para obter mais informações sobre outros métodos de autenticação, consulte Como obter credenciais de um perfil do IAM para uso com acesso da CLI a uma conta da AWS IAM na documentação do Centro de Identidade do AWS IAM (sucessor do AWS Single Sign-On). Para usar credenciais temporárias, adicione as credenciais temporárias ao seu arquivo de credenciais ou execute os seguintes comandos para exportar as credenciais para o seu ambiente: export AWS_SESSION_TOKEN=SECRET-SESSION-TOKEN
export AWS_ACCESS_KEY_ID=SESSION-ACCESS-KEY
export AWS_SECRET_ACCESS_KEY=SESSION-SECRET-KEY
Se você tiver uma combinação tradicional de chave de acesso e chave secreta, execute os seguintes comandos: export AWS_ACCESS_KEY_ID=my.aws.key
export AWS_SECRET_ACCESS_KEY=my.secret.key
Se você usar uma combinação de chave de acesso e chave secreta, altere o provedor de credenciais nos DistCp comandos de "org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" para"org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider" . | Administrador da AWS |
Transfira dados usando DistCp. | Para usar DistCp para transferir dados, execute os seguintes comandos: hadoop distcp -Dfs.s3a.aws.credentials.provider=\
"org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" \
-Dfs.s3a.access.key="${AWS_ACCESS_KEY_ID}" \
-Dfs.s3a.secret.key="${AWS_SECRET_ACCESS_KEY}" \
-Dfs.s3a.session.token="${AWS_SESSION_TOKEN}" \
-Dfs.s3a.path.style.access=true \
-Dfs.s3a.connection.ssl.enabled=true \
-Dfs.s3a.endpoint=s3.<your-aws-region>.amazonaws.com \
hdfs:///user/root/ s3a://<your-bucket-name>
A região da AWS do endpoint não é descoberta automaticamente quando você usa o DistCp comando com a AWS PrivateLink para o Amazon S3. O Hadoop 3.3.2 e versões posteriores resolvem esse problema habilitando a opção de definir explicitamente a região da AWS do bucket S3. Para obter mais informações, consulte S3A para adicionar a opção fs.s3a.endpoint.region para definir a região da AWS (site do Hadoop). Para obter mais informações sobre provedores S3A adicionais, consulte Configuração geral do cliente S3A (site do Hadoop). Por exemplo, se você usa criptografia, pode adicionar a seguinte opção à série de comandos acima, dependendo do seu tipo de criptografia: -Dfs.s3a.server-side-encryption-algorithm=AES-256 [or SSE-C or SSE-KMS]
Para usar o endpoint da interface com o S3A, você deve criar uma entrada de alias de DNS para o nome regional do S3 (por exemplo,s3.<your-aws-region>.amazonaws.com ) no endpoint da interface. Consulte a seção Configurar autenticação para o Amazon S3 para obter instruções. Essa solução alternativa é necessária para o Hadoop 3.3.2 e versões anteriores. Versões futuras do S3A não exigirão essa solução alternativa. Se você tiver problemas de assinatura com o Amazon S3, adicione uma opção de usar a Signature Version 4 (SigV4): -Dmapreduce.map.java.opts="-Dcom.amazonaws.services.s3.enableV4=true"
| Engenheiro de migração, administrador da AWS |