Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 16499|Svar: 0

[Källa] Ladda ner filer direkt från Hadoop HDFS

[Kopiera länk]
Publicerad på 2019-07-10 14:20:11 | | |
Ladda ner stora filer från HDFS

Jag fick en stor fil (ungefär 2GB) DataInputStream från HDFS-klienten och jag behöver lagra den som en fil på min värd.

Jag funderar på att använda Apache Common IOUtils och göra något i stil med detta......


Jag har letat efter andra lösningar som är bättre än denna. Den största oron är användningen av buffring i input och IOUtils.copy.

För filer större än 2GB rekommenderas att använda IOUtils.copyLarge() (om vi talar om samma IOUtils: org.apache.commons.io.IOUtils)

Replikan i IOUtils använder standardbuffertstorleken 4Kb (även om du kan ange en annan buffertstorlek som parameter).

Skillnaden mellan copy() och copyLarge() är att den returnerar resultatet.

Eftersom copy(), om strömmen är större än 2GB, kommer du att använda kopieringen framgångsrikt, men resultatet blir -1.

För copyLarge() är resultatet antalet byte som är fullt kopierade.

Se mer i dokumentationen här:


Inloggningen med hyperlänken är synlig.



Hur man kontrollerar om en fil är helt nedladdad via Spring Rest API:et

Jag skapade ett enkelt REST API för att leverera filer från hdfs (filerna är stora och jag vill inte kopiera dem lokalt).

Jag vill logga informationen som filnedladdningen slutförde, alltså läsa hela strömmen, men jag vet inte hur. Jag kan bara registrera informationen om att filnedladdningen startade.

All hjälp skulle uppskattas mycket.


Du kan prova att skapa en wrapper på InputStream och trigga några flaggor på streamen close(close()).

Till exempel kan du använda ProxyInputStream som grund:








Föregående:Dela några uppmätta webbplatser för att ta emot SMS-verifieringskoder online
Nästa:JS--Plugin: Trädutveckling och implementeringsbilaga är nedladdningsbar!!
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com