2017-02-19 29 views
1

Я пробовал это практически понять концепцию, но я до сих пор не ясно.Как отрегулировать интервал контрольной точки в hadoop? и почему требуется checkpoint_intereval?

сказать, например, fs.trash.interval = 9min и fs.trash.checkpoint.interval = 2мин

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

В соответствии с моим пониманием file1 должен быть удален навсегда в 10:09 и file2 в 10:11.

Если контрольная точка происходит каждый 2мин говорят
1-ый в 10:02
второй 10:04
3 10:06
четвёртую 10:08
пятые 10:10
6 10:12
так file1 следует удалить в пятом контрольном пункте_intereval и file2 в 6-м интервале.

мои сомнения

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

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

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

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

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

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

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

ответ

0

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

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

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

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

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) Это процесс, который проверяет checkpointer каждые 2 минуты делает удаление, а также. Каждые 2 минуты, как сконфигурировано, процесс checkpointer переместит файлы в каталоге current в новый каталог контрольной точки и удалит все ранее созданные контрольные точки, которые старше, чем fs.trash.interval.

Цитирование с официального documentation:

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

0

Пожалуйста, взгляните, поможет ли это blog.