Мы используем hadoop, чтобы разбить таблицу на более мелкие файлы для передачи в mahout, но в процессе мы создали огромное количество _временных журналов.
У нас есть монтирование NFS для тома hadoop, поэтому мы можем использовать все команды linux для удаления файлов папок, но мы просто не можем их удалить, вот что я пробовал до сих пор:
hadoop fs -rmr /.../_temporary : hangs for hours and does nothing
на монтировании NFS:
rmr -rf /.../_temporary :hangs for hours and does nothing
find . -name '*.*' -type f -delete : same as above
Папки выглядят так (38 из этих папок внутри _tevent):
drwxr-xr-x 319324 user user 319322 Oct 24 12:12 _attempt_201310221525_0404_r_000000_0
Содержимое этих файлов на самом деле является папками, а не файлами. Каждая из этих 319322 папок имеет ровно один файл внутри. Не уверен, почему ведение журнала таким образом.
-type f
собирается найти обычные файлы. Ты хочешь-type d
если вы используетеfind
найти папки-name '*.*'
не нужно, если вы использовали только-type d
может быть, я бы использовал что-то вроде этого:find . -type d -delete
или жеfind . -name "_temporary" -delete
(в зависимости от конкретного случая, может быть, есть файлы, которые не следует удалять).Ответы:
Делает
rm
,rm -r
, или жеrmdir
работать над отдельным файлом или каталогом соответственно?Если так, то держу пари, что вы ожидаете, что NFS отсортирует имена папок 319222 и представит их в алфавитном порядке. Пытаться
ls -f | xargs rm -r
источник