Melhores práticas para transferência de dados entre clusters Hadoop

Melhores práticas para transferência de dados entre clusters Hadoop

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?

informação relacionada