Как работает интервал проверки корзины в Hadoop? а зачем нужен checkpoint_intereval?

Я пробовал это практически, чтобы понять концепцию, но мне все еще не ясно.

например, fs.trash.interval=9min и fs.trash.checkpoint.interval=2min

Теперь я удаляю файл1 в 10:00 и файл2 в 10:03. Он говорит, что он перемещен в «/user/xxx/.trash/current», и этот текущий каталог исчез через некоторое время, и я вижу там папку контрольной точки, и она выглядит так: «/user/xxx/.trash/(date_somenumber) ".

Насколько я понимаю, файл 1 должен быть окончательно удален в 10:09, а файл 2 — в 10:11.

Если контрольная точка возникает каждые 2 минуты, скажем,
1-е в 10:02
2-е в 10:04
3-е в 10:06
4-е в 10:08
5-е в 10:10
6-е в 10:12< br> поэтому файл1 должен быть удален в 5-м интервале контрольной точки, а файл2 — в 6-м интервале.

мои сомнения

1) когда текущий каталог исчезает? во время checkpoint_intereval или в любое время раньше?

(для меня это выглядит так, как будто оно исчезает в течение минуты)

2) для каждого интервала контрольной точки новая папка формируется только в том случае, если новый файл удален и является абстрактным ?

(итак, означает ли это, что каждые 2 минуты контрольная точка является для нас абстрактной и не меняет имя каталога каждые 2 минуты)

3) мы установили интервал корзины равным 9 минутам (например) с намерением хранить файл в течение 9 минут в корзине, так зачем нам нужен checkpoint_interval для проверки каждые 2 минуты (например), когда мы знаем, что он будет автоматически удален через 9 минут .

(является ли контрольная точка процессом удаления файлов ?? потому что, когда мы говорим checkpoint_intereval=0, по-прежнему по умолчанию он принимает интервал мусора = 9 минут в качестве значения, а контрольная точка возникает каждые 9 минут)

пожалуйста, исправьте мое понимание, если я ошибаюсь, прояснив эти сомнения.


person Vidya    schedule 19.02.2017    source источник


Ответы (1)


/user/username/.Trash/Current/ используется для хранения недавно удаленных файлов HDFS.

/user/username/.Trash/CheckpointTime/ создается во время интервала контрольной точки, который на самом деле является переименованным каталогом current. Может быть несколько контрольных точек в зависимости от разницы во времени между trash.interval и checkpoint.interval.

fs.trash.interval: количество минут, по истечении которых контрольная точка удаляется. fs.trash.checkpoint.interval : количество минут между контрольными точками корзины.

1) Текущий каталог переименовывается с отметкой времени в качестве каталога контрольной точки во время интервала контрольной точки, а не ранее.

2) Только при наличии current или недавних удалений в течение интервала.

Фрагмент из Trash, используемый Hadoop:

  private void createCheckpoint(Path trashRoot, Date date) throws IOException {
    if (!fs.exists(new Path(trashRoot, CURRENT))) {
      return;
    }
    .....
    Path checkpoint = checkpointBase;
    Path current = new Path(trashRoot, CURRENT);
    ......
    while (true) {
      try {
        fs.rename(current, checkpoint, Rename.NONE);
        .....
      .....

3) Это процесс контрольной точки, который проверяет каждые 2 минуты, а также удаление. Каждые 2 минуты процесс контрольной точки перемещает файлы из каталога current в новый каталог контрольных точек и удаляет все созданные ранее контрольные точки, которые старше каталога fs.trash.interval.

Цитата из официальной документации:

Самые последние удаленные файлы перемещаются в текущий каталог корзины (/user/username/.Trash/Current), а через настраиваемый интервал HDFS создает контрольные точки (в /user/username/.Trash/date) для файлов в текущем каталоге корзины. и удаляет старые контрольные точки по истечении срока их действия.

person franklinsijo    schedule 19.02.2017