Раздайте копию файла исполнителям - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть куча данных (на S3), которые я копирую в локальную HDFS (на Amazon EMR).Сейчас я делаю это, используя org.apache.hadoop.fs.FileUtil.copy, но не ясно, распространяет ли это копию файла среди исполнителей.Конечно, на сервере Spark History ничего не отображается.

Hadoop DistCp похоже на это (обратите внимание, я на S3, так что на самом деле он должен быть s3-dist-cp, который построен поверх dist-cp) за исключением того, что это инструмент командной строки.Я ищу способ вызвать это из скрипта Scala (он же Java).

Любые идеи / выводы?

1 Ответ

0 голосов
/ 07 декабря 2018

cloudcp - пример использования Spark для копирования;список файлов превращается в СДР, каждая строка == копия.Этот дизайн оптимизирован для загрузки из HDFS, поскольку он пытается запланировать загрузку близко к файлам в HDFS.

Для загрузки вы хотите

  • использовать listFiles (путь, рекурсивно) для максимальной производительности при перечислении хранилища объектов.
  • рандомизировать список исходных файлов так,чтобы AWS
  • не задушил вас, случайным образом расположите кластер HDFS так, чтобы блоки в конечном итоге были равномерно распределены по кластеру
...