Слишком много файлов в моем кластере сообщества Databricks, но где?

#streaming #databricks #aws-databricks #databricks-community-edition

#потоковая передача #databricks #aws-databricks #databricks-community-edition

Вопрос:

Я начал играть с потоковой передачей в моем издании сообщества Databricks, но после нескольких минут создания тестовых событий я столкнулся с некоторой проблемой. Я полагаю, что это каким-то образом связано с тем фактом, что некоторые временные небольшие файлы создаются в процессе потоковой передачи. Я хотел бы найти их и удалить, но не могу найти, где они хранятся. Мое исключение

 com.databricks.api.base.DatabricksServiceException: QUOTA_EXCEEDED: You have exceeded the maximum number of allowed files on Databricks Community Edition. To ensure free access, you are limited to 10000 files and 10 GB of storage in DBFS. Please use dbutils.fs to list and clean up files to restore service. You may have to wait a few minutes after cleaning up the files for the quota to be refreshed. (Files found: 11492);
  

И я попытался запустить некоторый скрипт оболочки, чтобы узнать количество файлов в каждой папке, но, к сожалению, я не могу найти подозрительные, в основном, lib , usr и другие папки, содержащие системные файлы или файлы python, не могу найти ничего, что могло бы быть создано моей потоковой передачей. Этот скрипт, который я использую

 find / -maxdepth 2 -mindepth 1 -type d | while read dir; do
  printf "%-25.25s : " "$dir"
  find "$dir" -type f | wc -l
done
  

Где я могу найти причину too many files проблемы? Может быть, это вообще не связано с потоковой передачей?

Чтобы было понятно, я загрузил не так много пользовательских файлов в /FileStore

Ответ №1:

Похоже, вы проверили только наличие файлов в локальной файловой системе, а не саму DBFS. Вы можете взглянуть на DBFS, запустив следующую ячейку в записной книжке Databricks:

 %sh
fs ls /
  

или:

 %python
dbutils.fs.ls("/")
  

Вы могли бы проверить наличие там файлов и удалить их с помощью dbutils.fs.rm или fs rm . Также взгляните на /tmp папку в DBFS и удалите все файлы там.

Комментарии:

1. Я использую %sh здесь, чтобы был поиск, начинающийся с реального корня / . В /tmp папке есть несколько файлов, которые там уже проверены. Мне просто более любопытно, что именно производит потоковая передача и почему 🙂

2. обновление, это самые большие папки в моей файловой системе, согласно find : sh /databricks : 43126 /usr : 79378 подходят ли эти объемы для блоков данных сообщества?

3. Хотя кажется, что вы запрашиваете локальную файловую систему, а не DBFS. Я думаю, что это не обязательно так, что файлы в DBFS автоматически монтируются в локальную файловую систему. (Например, %sh ls /tmp и %fs ls /tmp , скорее всего, приведут к другим результатам). Я бы посоветовал изучить DBFS с помощью %fs ls / и, скорее всего, вы найдете там какую-нибудь папку и файлы, которые содержат слишком много маленьких файлов или слишком большой объем данных.