2015-04-22 16 views
6

Sto cercando di capire la funzione di memoria di Spark. In questo processo mi sono imbattuto in Tachyon che è fondamentalmente nel livello dei dati di memoria che fornisce tolleranza agli errori senza replica utilizzando sistemi di derivazione e riduce il ricalcolo controllando i set di dati. Ora dove è confuso, tutte queste caratteristiche sono ottenibili anche dal sistema standard RDD di Spark. Quindi mi chiedo, gli RDD implementano Tachyon dietro le quinte per implementare queste funzionalità? Se non di quello che è l'uso di Tachyon in cui tutto il suo lavoro può essere svolto da RDD standard. O sto facendo un errore nel mettere in relazione questi due? una spiegazione dettagliata o un collegamento a uno sarà di grande aiuto. Grazie.Per impostazione predefinita, Tachyon è implementato dagli RDD in Apache Spark?

risposta

1

Ciò che è nella carta collegata non riflette la realtà di ciò che è in Tachyon come un progetto open source di rilascio, parti di quel documento sono sempre esistite come prototipi di ricerca e non sono mai state completamente integrate in Spark/Tachyon.

Quando si persistono i dati nel livello di memoria OFF_HEAP tramite rdd.persist(StorageLevel.OFF_HEAP), viene utilizzato Tachyon per scrivere tali dati nello spazio di memoria di Tachyon come file. Questo lo rimuove dall'heap di Java, dando così a Spark più memoria su cui lavorare.

Attualmente non scrive le informazioni di derivazione, quindi se i dati sono troppo grandi per adattarsi ai cluster Tachyon configurati, le porzioni di memoria dell'RDD andranno perse ei lavori Spark potrebbero non funzionare.

+0

Grazie Rob per aver risposto. Quindi Tachyon viene effettivamente utilizzato di default in RDD per uno dei livelli di persistenza, ma Tachyon non implementa tutte queste funzionalità, invece gli RDD ne implementano tutte. ho ragione ? –

+0

Questa è una descrizione accurata in quanto ho capito – RobV