Разница между 'distcp' и 'distcp -update'? - PullRequest
5 голосов
/ 06 января 2011

В чем разница между

hadoop distcp

и

hadoop distcp -update

Оба они будут выполнять одну и ту же работу с незначительной разницей в том, как мы их называем.Ни один из них не перезаписывает уже существующий файл в месте назначения.Какой смысл тогда в двух разных наборах команд?

1 Ответ

13 голосов
/ 07 января 2011

Разница между distcp и distcp -update заключается в том, что distcp по умолчанию пропускает файлы, а "distcp -update" обновляет файл, если размер src отличается от размера dst.

Это немного сбивает с толку в документации, так как по умолчанию distcp пропускает, если существует файл для предотвращения столкновения.

Из документов:

"Как отмечалось выше, это не операция" синхронизации ". Единственный проверенный критерий - это размеры файла источника и назначения; если они различаются, файл замены заменяет файл назначения."

Имейте в виду, -update не является дельта-сферным алгоритмом, подобным rsync, и выполняет только проверку размера, которая не идеальна, когда файлы имеют одинаковый размер, но данные отличаются.

Я должен также уточнить некоторые и объяснить, что distcp -overwrite будет перезаписывать файл независимо от того, совпадает ли размер или нет. Это разрушительный процесс, поэтому убедитесь, что вы действительно хотите это сделать.

Здесь можно найти несколько замечательных примеров: http://hadoop.apache.org/common/docs/r0.19.2/distcp.html#uo

Я также хочу привести пример того, что я делаю в операции синхронизации между двумя кластерами:

hadoop distcp -pugp -i -delete -update hftp://hdfs-nn1:50070/clustera hdfs://hdfs-nn2:9000/clustera

Это обновит все файлы в hdfs-nn2, которые не соответствуют по размеру из hdfs-nn1, а также удалит все посторонние файлы. При использовании .Trash все удаленные файлы помещаются в корзину пользователя, вызывающего distcp.

Я бы немного поэкспериментировал с этим, чтобы вы могли увидеть эффект от различных команд, так как это может быть болезненно, когда вы случайно удаляете ТБ данных, поэтому обязательно используйте вашу корзину.

...