Жизнь распределенного кэша в Hadoop

когда файлы передаются на узлы с помощью механизма распределенного кэша в потоковом задании Hadoop, система удаляет эти файлы после завершения задания? Если они удалены, что я предполагаю, есть ли способ сделать кэш оставшимся для нескольких заданий? Работает ли это так же на эластичном Mapreduce Amazon?

2 ответов


я копался в исходном коде, и похоже, что файлы удаляются TrackerDistributedCacheManager примерно раз в минуту, когда их счетчик ссылок падает до нуля. The TaskRunner явно выпускает все свои файлы в конце задачи. Возможно, вам стоит отредактировать TaskRunner чтобы не делать этого, а управлять кэшем через более явные средства самостоятельно?


Я cross разместил этот вопрос на форуме AWS и получил хорошую рекомендацию использовать hadoop fs -get для передачи файлов таким образом, что сохраняется во время работы.