
Situação: Preciso transferir cerca de 100 TB de um cluster Hadoop antigo para um novo cluster Hadoop. Os dois clusters têm uma conexão direta de 1 GbE do namenode em cada cluster. Os datanodes não estão conectados.
O que eu tentei:
- Distcp: Isso não funciona porque os datanodes antigos e novos não estão conectados, isso reportaria o tempo limite de conexão esgotado em cada trabalho de mapreduce.
- hdfs dfs -cp: Isso está funcionando muito bem até agora, mas tende a desacelerar e eventualmente parar de transferir após algumas horas. Ele também não suporta compactação ou boa capacidade de reinicialização.
No que estou interessado:
- Como minha conexão entre o Cluster 1 e o Cluster 2 é o gargalo, estou interessado em encontrar uma ferramenta que me permita compactar os dados no Cluster 1, enviá-los pela rede com muito pouca sobrecarga (netcat, talvez?) e descompactá-los no Cluster 2 .Rsync seria perfeito, mas não sei como usá-lo entre dois clusters Hadoop.
- Outras recomendações com as quais não estou familiarizado.
Minha pergunta:
- Quais ferramentas ou scripts posso usar para transferir dados entre o Cluster 1 e o Cluster 2 de forma eficiente, dadas as limitações listadas?