#hadoop #hdfs #bigdata #cloudera #snapshot
#hadoop #hdfs #bigdata #cloudera #снимок
Вопрос:
У нас есть кластер в Cloudera. Мы используем снимки для HDFS для резервного копирования. Недавно мы увидели, что пространство, используемое в HDFS, значительно увеличилось. Мы подозреваем, что это связано с тем, что снимки, которые мы используем для резервного копирования.
- Когда мы пытаемся увидеть размер каталога, мы видим следующее:
путь hdfs dfs -du -s -h
12,4 T 76,8 T путь
- Когда мы пытаемся увидеть размер этого каталога, мы видим совершенно другую вещь:
hdfs dfs -du -h -s -x
12.4 T 37.2 T
Мы также попытались посмотреть на размер снимков при этом . Размеры следующие:
hdfs dfs -du -s -h <path>/.snapshot
9.1 T 63.6 T <path>/.snapshot/snap-new
10.9 T 68.0 T <path>/.snapthot/snap-old
12.4 T 37.2 T <path>/.snapshot/snap-of-today
Мой вопрос здесь в том, если я удалю все эти снимки (snap-new, snap-old, snap-of-today), мы начнем видеть размер, подобный номеру 2?
Если нет, что мне нужно сделать, чтобы начать видеть размер, подобный номеру 2?
Заранее спасибо!
Ответ №1:
В HDFS невозможно увидеть, сколько места использует конкретный снимок. Как правило, самый старый снимок будет занимать больше всего места, но это зависит от того, когда вы удаляете и перезагружаете данные. Все данные, охватываемые снимком, не будут удалены при удалении данных. Из ваших выходных данных du:
12.4 T 76.8 T path
Обратите внимание, что 3 x 12,4 = 37,2. Итак, все ваши моментальные снимки используют 76,8 — 37,2 = 39,6 T сверх того, что находится в текущей файловой системе, которая использует 37,2T. Переключатель -x исключает данные моментальных снимков, а также показывает 37,2T в текущей файловой системе.
Вы можете видеть, запустив du в каталогах моментальных снимков, он просто сообщает вам, сколько места было занято файлами в моментальном снимке на момент создания моментального снимка. Часть этого пространства будет разделена между всеми снимками и даже между текущей файловой системой, поэтому вы не знаете, какой снимок занимает больше всего места.
Если вы удалите снимки, начиная с самого старого, использование пространства должно сократиться.
Если в вашем кластере есть рабочие нагрузки, которые часто удаляют и повторно создают много данных, снимки значительно увеличат ваши требования к пространству в кластере.
Ответ №2:
Если вы удалите свой снимок, вы будете использовать меньше памяти.
Просто как напоминание о том, почему снимки со временем становятся больше:
Реализация моментальных снимков HDFS эффективна:
Создание моментального снимка происходит мгновенно: стоимость составляет O (1) без учета времени поиска индекса. Дополнительная память используется только при внесении изменений относительно снимка: использование памяти равно O (M), где M — количество измененных файлов / каталогов. Блоки в узлах данных не копируются: в файлах снимков записывается список блоков и размер файла. Копирование данных не выполняется. Снимки не оказывают негативного влияния на обычные операции HDFS: изменения записываются в обратном хронологическом порядке, чтобы можно было получить прямой доступ к текущим данным. Данные моментального снимка вычисляются путем вычитания изменений из текущих данных.