2015-03-14 3 views
2

Я запускаю искровое приложение, оно использует StorageLevel.OFF_HEAP для сохранения rdd (мой тахион и искра оба находятся в локальном режиме).OFF_HEAP rdd был удален автоматически Tachyon после выполнения искрового задания

так:

val lines = sc.textFile("FILE_PATH/test-lines-1") 
val words = lines.flatMap(_.split(" ")).map(word => (word, 1)).persist(StorageLevel.OFF_HEAP) 
val counts = words.reduceByKey(_ + _) 
counts.collect.foreach(println) 
... 
sc.stop 

, когда не проходят сделано, я могу видеть мои OFF_HEAP файлы с локального хоста: 19999 (веб-интерфейс TACHYON в), это то, что я освобожденный.

Но после применения искры (sc.stop, но работает тахион) мои блоки (OFF_HEAP rdd) были удалены. И я не могу найти свои файлы с localhost: 19999. Это не то, что я хочу. Я думаю, что эти файлы принадлежат Tachyon (не искрам) после метода persist(), их не следует удалять.

так, кто удалил мои файлы и когда? Это нормальный путь?

ответ

2

Вы ищете

saveAs[Text|Parquet|NewHadoopAPI]File() 

Это настоящий «стойкий» метод вам нужно.

Вместо

persist() 

используется для промежуточного хранения РДД-х: когда заканчивается процесс искрового они будут удалены. Вот из комментариев исходного кода:

  • Установить уровень хранения этого РДДА, чтобы упорствовать свои ценности через операцию после того, как в первый раз он вычислен.

важная фраза по операциям - то есть как часть обработки (только).

 Смежные вопросы

  • Нет связанных вопросов^_^