distcp вызывает асимметрию в HDFS - PullRequest
0 голосов
/ 31 октября 2018

У меня есть папка (размером около 2 ТБ) в HDFS, которая была создана методом save из Apache Spark. Он почти равномерно распределен по узлам (я проверил это, используя hdfs fsck).

Когда я пытаюсь distcp эту папку (внутри кластера) и запускаю hdfs fsck в папке назначения, она оказывается сильно искажена, то есть мало узлов имеют много блоков, тогда как мало узлов очень мало блоков хранится на них. Эта асимметрия в HDFS вызывает проблемы с производительностью.

Мы попытались переместить данные, используя mv от источника к месту назначения (внутри кластера), и на этот раз асимметрия в месте назначения была хорошей, то есть данные были распределены равномерно.

Есть ли способ уменьшить асимметрию в HDFS при использовании distcp?

1 Ответ

0 голосов
/ 31 октября 2018

Количество картографов в distcp было равно количеству узлов, которые были сильно загружены.

Таким образом, я увеличил число картографов в distcp, используя опцию -m, до количества машин, присутствующих в кластере, и результат был намного меньше искажен.

Дополнительное преимущество: distcp задание выполнено намного быстрее, чем раньше.

...