Domanda

Sto attualmente utilizzando Hadoop Mapleduce Jobs con SequenceFiles of Writables. Lo stesso tipo scrivibile viene utilizzato per la serializzazione anche nelle parti non-hadoop relative al sistema.

Questo metodo è difficile da mantenere - principalmente a causa della mancanza di schema e della necessità di movimentazione manuale delle modifiche alla versione.

Sembra che Apache Avro gestisca questi problemi.

Il problema è che durante la migrazione avrò dati in entrambi i formati. C'è un modo semplice per gestire la migrazione?

È stato utile?

Soluzione

Generalmente, non c'è nulla che ti fermi dall'utilizzo di dati AVRO e sequencefili intercambiabilmente. Utilizzare qualunque inputformat sia necessario per il tipo di dati di cui hai bisogno e per l'uscita, ovviamente, ha senso utilizzare i formati AVRO ogni volta che sono pratici. Se il tuo input è disponibile in diversi formati, dai un'occhiata a multilines . Essenzialmente, dovrai comunque implementare i mappers separati, ma che deve essere espulso considerando che la chiave / il valore di ingresso della mappa è diversa.

Spostarsi in Avro è una mossa saggia. Se hai la capacità in tempo e hardware, potrebbe anche valere la pena di convertire esplicitamente i tuoi dati da sequencefile ad Avro subito. È possibile utilizzare qualsiasi lingua supportata da AVRO che avviene anche per supportare sequencefiles per farlo. Java certamente fa (chiaramente), ma il maiale è anche pratico per farlo.

L'utente ha contribuito il Piggybank Project ha funzionalità per leggere un sequencefile, e quindi è semplicemente una questione di utilizzare Avrostorage dallo stesso progetto Piggybank con lo schema AVRO appropriato per ottenere il tuo file AVRO.

Se solo il maiale ha supportato il caricamento di schemi AVRO da file ..! Se usi il maiale, sfortunatamente dovrai formare script che contengono esplicitamente lo schema AVRO, che può essere un po 'fastidioso.

Altri suggerimenti

Non l'ho provato da solo, ma forse usare il formato AvroSequenceFile?È solo un involucro intorno a SequenceFile, quindi in teoria dovresti essere in grado di scrivere dati sia nel tuo vecchio formato SequenceFile che sul tuo nuovo formato Avro che dovrebbe rendere la migrazione più semplice.

qui è Maggiori informazioni Informazioni su questo formato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top