Как ограничить использование диска в DataNode, не вызывая Hadoop для входа в безопасный режим? - PullRequest
0 голосов
/ 08 мая 2018

У меня есть 3 узла кластера Hadoop 2.7.3, которые можно описать следующим образом:

  • Узел A : 25 ГБ, DataNode, NameNode
  • Узел B : 50 ГБ, DataNode
  • Узел C : 25 ГБ, DataNode

Проблема в том, что на узле A интенсивно используется диск (около 95%). Чего я хотел бы добиться, так это ограничить использование диска, чтобы оно никогда не превышало 85%.
Я попытался установить для свойства dfs.namenode.resource.du.reserved значение около 3 ГБ, но это не решило мою проблему, потому что, как только доступное дисковое пространство стало меньше этого значения, мой Hadoop немедленно переходит в безопасный режим.
Я знаю, что для продолжения работы NN должны быть доступны все необходимые ресурсы и что NN будет продолжать работать, пока доступен любой резервный ресурс.
Кроме того, я знаю о свойстве dfs.namenode.edits.dir.required, которое определяет требуемые ресурсы, но я не думаю, что делать NN избыточным вместо обязательного является хорошей идеей.

Так что мои вопросы как в теме. Как я могу сказать Hadoop: «Эй, слушай. Это датода, положи сюда все, что захочешь, но если использование диска будет выше 85%, не паникуй - просто перестань что-то класть и продолжай делать свое дело». на остальной части DN. "?
Я что-то пропустил? Это вообще возможно? Если нет, то что бы вы, ребята, предложили мне сделать?

1 Ответ

0 голосов
/ 08 мая 2018

Существует процесс, называемый средством проверки ресурсов Namenode, который сканирует тома хранения Namenode на наличие свободного дискового пространства.Всякий раз, когда доступное свободное пространство падает ниже значения, указанного в свойстве dfs.namenode.resource.du.reserved (по умолчанию 100 МБ), это заставляет Namenode вводить безопасный режим.

Если установить значение 3 ГБ , можно ожидать свободного места на этом узле.Но Datanode будет использовать все доступное свободное пространство для хранения своих данных, не принимая во внимание требования к дисковому пространству для Namenode.

Ограничьте использование диска датодода на этом конкретном узле, добавьте это свойство в hdfs-site.xml

<property>
  <name>dfs.datanode.du.reserved</name>
  <value>3221225472</value>
  <description>3GB of disk space reserved for non DFS usage. 
               This space will be left unconsumed by the Datanode.
     </description>
</property>

Измените значение зарезервированного пространства в соответствии с требуемым порогом.

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