Лучшие практики передачи данных между кластерами Hadoop

Лучшие практики передачи данных между кластерами Hadoop

Ситуация: Мне нужно перенести около 100 ТБ из старого кластера Hadoop в новый кластер Hadoop. Два кластера имеют прямое соединение 1GbE от namenode на каждом кластере. Datanode не подключены.

Что я пробовал:

  • Distcp: Это не работает, поскольку старый и новый узлы данных не подключены, при каждом задании mapreduce будет сообщаться об истечении времени ожидания соединения.
  • hdfs dfs -cp: Пока что это работает довольно хорошо, но имеет тенденцию замедляться и в конечном итоге прекращать передачу через несколько часов. Это также не поддерживает сжатие или хорошую перезапускаемость.

Что меня интересует:

  • Поскольку мое соединение между кластером 1 и кластером 2 является узким местом, мне интересно найти инструмент, который позволит мне сжимать данные в кластере 1, отправлять их по сети с минимальными накладными расходами (может быть, netcat?) и распаковывать их в кластере 2. Rsync был бы идеальным вариантом, но я не уверен, как использовать его между двумя кластерами Hadoop.
  • Другие рекомендации, с которыми я не знаком.

Мой вопрос:

  • Какие инструменты или скрипты я могу использовать для эффективной передачи данных между кластером 1 и кластером 2, учитывая перечисленные ограничения?

Связанный контент