Диски Datanode заполнены, потому что огромные файлы в виде стандартного вывода

у нас есть следующие версии кластера hadoop (машина DATA-NODE находится на версии ОС Linux - 7.2)

ambari - 2.6.1 HDP - 2.6.4

мы видели несколько сценариев, когда диски на компьютере с датанодом были заполнены на 100%

и это потому, что файлы как - stdout имеют огромный размер

Например

/grid/sdb/hadoop/yarn/log/application_151746342014_5807/container_e37_151003535122014_5807_03_000001/stdout

из df -h мы можем видеть

df -h /grid/sdb
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb        1.8T  1.8T  0T   100% /grid/sdb

любое предложение, как избежать этой ситуации, когда стандартный вывод огромен, и на самом деле эта проблема вызывает остановку компонента HDFS на узле данных,

второй: поскольку ПУТЬ stdout:

/var/log/hadoop-yarn/containers/[application id]/[container id]/stdout

можно ли ограничить размер файла? или сделать очистку stdout, когда файл достиг порога?


person Judy    schedule 03.01.2019    source источник


Ответы (1)


Глядя на указанный выше путь, похоже, что ваше приложение (задание Hadoop) записывает много данных в stdout файл. Обычно это происходит, когда задание записывает data в stdout с помощью System.out.println функции или аналогичных функций, которые не требуются, но иногда могут использоваться для отладки кода.

Пожалуйста, проверьте код своего приложения и убедитесь, что он не пишет в stdout.

Надеюсь это поможет.

person pradeep    schedule 03.01.2019
comment
Допустим, мы хотим найти обходной путь, который будет искать в этих файлах и перемещать все строки в файлах, кроме последних 1000 строк, можем ли мы это сделать? - person Judy; 04.01.2019
comment
вы можете написать задание cron, которое завершит последнюю 1000 строк в другом файле. но чего вы хотите достичь с последними 1000 строками? - person pradeep; 08.01.2019