Каждый день наш кластер Hadoop сообщает о наличии недостаточно реплицированных блоков. Управляется через Cloudera Manager. Пример предупреждения о вреде для здоровья:
! Недостаточно реплицированные блоки
Относительно: 767 под реплицированными блоками в кластере. Всего 3115 блоков в кластере. Процент под реплицированными блоками: 24,62%. Порог предупреждения: 10,00%.
Я запускал команды, которые устраняют проблему, но на следующее утро предупреждение возвращается, а иногда и без добавления каких-либо новых данных. Одной из временно успешных команд была
hdfs dfs -setrep -R 2 /*
Я также попробовал другую рекомендуемую команду< /а>
su hdfs
hdfs fsck / | grep 'Under replicated' | awk -F':' '{print $1}' >> /tmp/under_replicated_files
for hdfsfile in `cat /tmp/under_replicated_files`; do echo "Fixing $hdfsfile :" ; hadoop fs -setrep 2 $hdfsfile; done
Оба работают, но исправление не является постоянным.
В Cloudera Manager для Replication Factor
и Minimal Block Replication
установлено значение 2
.
Из-за того, что проблема возникает только примерно раз в 24 часа, трудно и требует много времени, чтобы попытаться исправить ее, а метод проб и ошибок является моим единственным средством. Я понятия не имею, почему эта ошибка продолжает возвращаться! Мы ценим любые предложения. Спасибо
/user/x/.Trash
! Я понятия не имею, почему они появляются в одночасье. Возможно, это результат внутренней работы Hadoop? - person Smittey   schedule 04.10.2017