2014-05-20 9 views
5

Cosa significa realmente la cache di distribuzione? Avere un file nella cache distribuita significa che è disponibile in ogni datanode e quindi non ci sarà alcuna comunicazione internodio per quei dati, o significa che il file è in memoria in ogni nodo? In caso contrario, con quali mezzi posso avere un file in memoria per l'intero lavoro? Questo può essere fatto sia per ridurre la mappa, sia per un UDF.Confusione sulla cache distribuita in Hadoop

(In particolare ci sono alcuni dati di configurazione, relativamente piccoli che vorrei conservare in memoria come una UDF si applica alla query hive .. .?)

Grazie e saluti, Dhruv Kapur.

risposta

17

DistributedCache è una funzionalità fornita dal framework Map-Reduce per memorizzare nella cache i file necessari alle applicazioni. Una volta che hai messo in cache un file per il tuo lavoro, il framework hadoop lo renderà disponibile su tutti i nodi di dati (nel file system, non in memoria) dove esegui la mappatura/riduzione delle attività. Quindi è possibile accedere al file di cache come file locale nel processo Mapper o Reducer. Ora puoi leggere facilmente il file cache e compilare alcune raccolte (ad esempio Array, Hashmap, ecc.) Nel tuo codice.

consultare https://hadoop.apache.org/docs/r2.2.0/api/org/apache/hadoop/filecache/DistributedCache.html

Fatemi sapere se ancora avete alcune domande.

È possibile leggere il file di cache come file locale nel codice UDF. Dopo aver letto il file utilizzando le API JAVA, compilare qualsiasi raccolta (In memoria).

Refere URL http://www.lichun.cc/blog/2013/06/use-a-lookup-hashmap-in-hive-script/

-Ashish

+0

Hey grazie per la risposta ... Quindi io sono più preoccupato per quando e come si fa a mettere qualcosa da cache distribuita nella memoria? In caso di Hive, avrò bisogno di accedere a questo file nella cache distribuita all'interno di una UDF. Come ci arrivo? Non dovrei leggere un file HDFS da un UDF giusto? –

+0

Ho modificato il post. Basta fare riferimento all'URL menzionato. – Ashish

+0

Questo è esattamente quello che sto cercando. Grazie! Sono ancora un po 'preoccupato se la mappa all'interno della UDF viene popolata solo una volta o meno. C'è qualche documentazione di hive che supporta questo, o un modo in cui posso verificare questo comportamento? –

Problemi correlati