Ho un file di registro che si trova in un tarball (access.logs.tar.gz) caricato nel mio cluster hadoop. Mi chiedevo se il loro modo di caricarlo direttamente su un maiale senza avviarlo?come caricare un tarball su maiale
risposta
PigStorage riconoscerà che il file è compresso (dall'estensione .gz, questo è effettivamente implementato in TextInputFormat che PigTextInputFormat estende), ma dopo si avrà a che fare con un file tar. Se sei in grado di gestire le linee di intestazione tra i file nel tar, puoi semplicemente usare PigStorage così com'è, altrimenti dovrai scrivere la tua estensione di PigTextInputFormat per gestire l'eliminazione delle linee di intestazione tra ogni file
@ La risposta di ChrisWhite è tecnicamente corretta e dovresti accettare la sua risposta anziché la mia (IMO almeno).
È necessario allontanarsi dai file tar.gz
con Hadoop. I file Gzip non sono divisibili, quindi ti trovi nella situazione in cui, se i tuoi file gzip sono grandi, vedrai l'hotspotting nei tuoi mappatori. Ad esempio, se si dispone di un file .tar.gz
di 100 GB, non sarà possibile suddividere il calcolo.
Diciamo, d'altra parte, che sono piccoli. Nel qual caso, Pig farà un buon lavoro nel raccoglierli insieme e il problema della scissione andrà via. Questo ha il rovescio della medaglia del fatto che ora hai a che fare con tonnellate di piccoli file con il NameNode. Inoltre, poiché i file sono minuscoli, dovrebbe essere relativamente economico computazionalmente per riformare i file in un formato più ragionevole.
Quindi in quale formato è necessario riformulare i file? Buona domanda!
- Basta tutto concatenare in un unico file compresso sequenza di grandi dimensioni a livello di blocco potrebbe essere il più impegnativo, ma il più gratificante in termini di prestazioni.
- L'altro è semplicemente ignorare la compressione interamente e solo esplodere quei file, o almeno concatenare loro (si notano risultati di prestazioni senza compressione).
- Infine, è possibile eseguire il blob dei file in blocchi da ~ 100 MB e quindi eseguirne il gzip.
Penso che sarebbe del tutto ragionevole scrivere una sorta di caricatore di tarball nel porcellino salvadanaio, ma personalmente preferirei semplicemente distribuire i dati in modo diverso.
- 1. ricetta burattino installazione tarball
- 2. Scrum - Sei un pollo o un maiale?
- 3. È necessario includere autogen.sh in un tarball?
- 4. Ansible: Installare tarball via HTTP
- 5. Può essere immutabile un maiale memoria?
- 6. Come appiattire un gruppo in una singola tupla nel maiale?
- 7. Regexp corrispondente nel maiale
- 8. Come caricare un repository git su gerrit?
- 9. Filtro valori null con maiale
- 10. Esportazione da maiale a CSV
- 11. installazione di un pacchetto tarball sorgente Python con pip
- 12. Come posso eseguire il debug di uno script su un maiale
- 13. Confezione Python: ruote vs tarball (tar.gz)
- 14. Scaricare i sottomoduli git per tarball
- 15. Download di un tarball da github senza arricciatura
- 16. Auto cross-unirsi maiale viene ignorata
- 17. Come caricare un XIB?
- 18. Come caricare un file locale su un modello Carrierwave?
- 19. Proiezione di tuple raggruppate nel maiale
- 20. Esclusione sicura del comando guscio di maiale
- 21. scoperta significa usare maiale o di Hadoop
- 22. Heroku non aggiorna node.js> package.json Github tarball dependecies
- 23. In spark join, l'ordine del tavolo è come nel maiale?
- 24. Come caricare un file tramite Carrierwave su un'API JSON?
- 25. Come caricare la pagina su un tag di ancoraggio?
- 26. Come caricare un video su YouTube in Android?
- 27. Come caricare un file su ASP.NET MVC da un'applicazione console
- 28. Come posso caricare un file su Solr in Windows?
- 29. Come caricare un video su YouTube da un'applicazione iOS?
- 30. Come caricare un progetto con mercurial su googlecode?