Situação:
Eu preciso transferir cerca de 100 TB de um antigo cluster do Hadoop para um novo cluster do 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, ele relataria a conexão expirada em cada trabalho do mapreduce.
- hdfs dfs -cp: Isso está funcionando muito bem até agora, mas tende a desacelerar e, eventualmente, parar a transferência depois de algumas horas. Também não suporta compressão ou boa capacidade de reinicialização.
O que me interessa:
- 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 por fio com pouca sobrecarga (netcat talvez?) e descompactá-lo no Cluster 2. O Rsync seria perfeito, mas não sei como usá-lo entre dois clusters do 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 com eficiência, considerando minhas limitações listadas?