Как я знаю, процедура хранения блоков и реплик в Hadoop выполняется функцией или процессом BlockPlacementPolicy, но это для начальной процедуры хранения (первый раз, когда данные хранятся в системе HDFS). Мне интересно, какой процесс или java-функция отвечает за восстановление (путем восстановления я имею в виду решение проблемы недоиспользования) данных после отказа диска или Datanode. Моя идея состоит в том, чтобы изменить функцию взамен, работать в соответствии с моими потребностями, это означает поддерживать количество реплик и хранить новые реплики (восстановленные реплики) на диске моего интереса.Какова процедура сбоя и восстановления узла диска или данных в hadoop
0
A
ответ
0
Когда узел выходит из строя, блоки, хранящиеся там, больше не считаются доступными для HDFS. Вы можете легко это увидеть, просмотрев количество реплицированных блоков, когда узел выходит из строя или отключен.
В общем случае система попытается решить проблему недоиспользования, когда это произойдет (и когда емкость будет доступна). Поэтому в основном решение, которое вы хотите построить, должно быть уже на месте.
Примечание: Hadoop не пытается восстановить данные из сломанных узлов, но просто реплицирует соответствующие блоки на основе неразрушенных узлов.
Извините, я использовал слово «восстановление», я думал о том, чтобы разрешить недопонимание. Я знаю, что эта процедура автоматизирована Hadoop. Мой вопрос о процедуре, и какой процесс отвечает за решение проблемы недоиспользования. – JovanKaramac
Я знаю, что, когда Namenode не получает heartbeat из Datanode, он начинается с решения проблемы, но я хочу узнать подробности о том, какой процесс ведет процедуру, кто является проводником процедуры решения проблемы недоучета, что java функции. – JovanKaramac
@ JovanKaramac Возможно, это будет [Balancer] (https://issues.apache.org/jira/browse/HADOOP-1652). –