Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 16499|Atsakyti: 0

[Šaltinis] Atsisiųskite failus tiesiai iš Hadoop HDFS

[Kopijuoti nuorodą]
Paskelbta 2019-07-10 14:20:11 | | |
Didelių failų atsisiuntimas iš HDFS

Aš gavau didelį failą (apie 2 GB) DataInputStream iš HDFS kliento ir man reikia saugoti jį kaip failą mano pagrindinis kompiuteris.

Aš galvoju naudoti apache bendras IOUtils ir daryti kažką panašaus......


Aš ieškojau kitų sprendimų, kurie yra geresni nei šis. Pagrindinis rūpestis yra buferio naudojimas įvesties ir IOUtils.copy.

Didesniems nei 2 GB failams rekomenduojama naudoti IOUtils.copyLarge() (jei kalbame apie tą patį IOUtils: org.apache.commons.io.IOUtils)

"IOUtils" replika naudoja numatytąjį 4 Kb buferio dydį (nors kaip parametrą galite nurodyti kitą buferio dydį).

Skirtumas tarp copy() ir copyLarge() yra tas, kad jis pateikia rezultatą.

Kadangi copy(), jei srautas yra didesnis nei 2 GB, sėkmingai naudosite kopiją, tačiau rezultatas yra -1.

CopyLarge() rezultatas yra visiškai nukopijuotų baitų skaičius.

Daugiau dokumentacijos rasite čia:


Hipersaito prisijungimas matomas.



Kaip patikrinti, ar failas visiškai atsisiųstas naudojant "Spring Rest" API

Sukūriau paprastą REST API, kad aptarnaučiau failus iš hdfs (failai yra dideli ir nenoriu jų kopijuoti vietoje).

Noriu užregistruoti informaciją, kad failo atsisiuntimas sėkmingai baigtas, t.y. perskaityti visą srautą, bet nežinau, kaip. Galiu įrašyti tik informaciją, kad prasidėjo failo atsisiuntimas.

Bet kokia pagalba būtų labai dėkinga.


Galite pabandyti sukurti apvalkalą InputStream ir suaktyvinti kai kurias vėliavėles sraute close(close()).

Pavyzdžiui, galite naudoti ProxyInputStream kaip pagrindą:








Ankstesnis:Pasidalinkite keliomis išmatuotomis svetainėmis, kuriose galite gauti SMS patvirtinimo kodus internetu
Kitą:JS - Įskiepiai: Medžio kūrimo ir įgyvendinimo priedas yra atsisiųsti!
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com