hdfs moveFromLocal не распределяет блоки реплик по узлам данных - PullRequest
6 голосов
/ 07 января 2020

Я недавно обновил свою среду Cloudera с 5.8.x ( имел oop 2.6.0, hdfs-1 ) до 6.3.x ( имел oop 3.0.0, hdfs- 1 ) и после нескольких дней загрузки данных с moveFromLocal я только что понял, что DFS использовано% сервера датододы, на котором я выполняю moveFromLocal, в 3 раза больше чем у других.

Затем запустив fsck с -blocks, -locations и -replicaDetails, отметьте путь hdfs, в который я загружаю данные; я заметил, что реплицированные блоки (RF = 2) все на этом же сервере и не распределяются на другие узлы, если я не запускаю вручную hdfs balancer.

Существует соответствующий вопрос, задаваемый месяц go, hdfs put / moveFromLocal не распределяет данные по узлам данных? , что на самом деле не отвечает ни на один из вопросов; файлы, которые я продолжаю загружать, представляют собой файлы паркета.

В Cloudera 5.8.x такой проблемы не было. Есть ли какая-то новая конфигурация, которую я должен сделать в Cloudera 6.3.x, связанная с репликацией, стойкой или чем-то в этом роде?

Любая помощь будет высоко оценена.

Ответы [ 2 ]

2 голосов
/ 08 января 2020

В соответствии с архитектурой HDFS do c, "В общем случае, когда коэффициент репликации равен трем, политика размещения HDFS заключается в размещении одной реплики на локальном компьютере, если пишущий находится на канале данных ... "

Для того же сделать c, " Поскольку * NameNode не позволяет узлам данных иметь несколько реплик одного и того же блока максимальное количество созданных реплик - это общее количество узлов данных на тот момент. "

1 голос
/ 08 января 2020

Вы, вероятно, делаете moveFromLocal на одном из ваших датоданий. Похоже, вам нужно сделать moveFromLocal из non-datanode для равномерного распределения в вашем кластере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...