Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 16499|Atbildi: 0

[Avots] Lejupielādējiet failus tieši no Hadoop HDFS

[Kopēt saiti]
Publicēts 10.07.2019 14:20:11 | | |
Lielu failu lejupielāde no HDFS

Es saņēmu lielu failu (apmēram 2 GB) DataInputStream no HDFS klienta, un man tas ir jāsaglabā kā fails savā resursdatorā.

Es domāju izmantot apache parastos IOUtils un darīt kaut ko līdzīgu......


Es meklēju citus risinājumus, kas ir labāki par šo. Galvenās bažas ir buferizācijas izmantošana ievadē un IOUtils.copy.

Failiem, kas lielāki par 2 GB, ieteicams izmantot IOUtils.copyLarge() (ja mēs runājam par to pašu IOUtils: org.apache.commons.io.IOUtils)

IOUtils replika izmanto noklusējuma bufera lielumu 4Kb (lai gan kā parametru var norādīt citu bufera lielumu).

Atšķirība starp copy() un copyLarge() ir tāda, ka tā atgriež rezultātu.

Tā kā copy(), ja straume ir lielāka par 2 GB, jūs veiksmīgi izmantosiet kopiju, bet rezultāts ir -1.

CopyLarge() rezultāts ir pilnībā kopēto baitu skaits.

Skatīt vairāk dokumentācijā šeit:


Hipersaites pieteikšanās ir redzama.



Kā pārbaudīt, vai fails ir pilnībā lejupielādēts, izmantojot Spring Rest API

Es izveidoju vienkāršu REST API, lai apkalpotu failus no hdfs (faili ir lieli, un es nevēlos tos kopēt lokāli).

Es vēlos reģistrēt informāciju, ka faila lejupielāde ir veiksmīgi pabeigta, t.i. izlasīt visu straumi, bet es nezinu, kā. Es varu ierakstīt tikai informāciju, ka sākās faila lejupielāde.

Jebkura palīdzība būtu ļoti pateicīga.


Jūs varat mēģināt izveidot iesaiņojumu InputStream un aktivizēt dažus karodziņus straumē close(close()).

Piemēram, par pamatu var izmantot ProxyInputStream:








Iepriekšējo:Kopīgojiet dažas izmērītas vietnes SMS verifikācijas kodu saņemšanai tiešsaistē
Nākamo:JS - Spraudnis: Koka izstrādes un ieviešanas pielikums ir lejupielādējams !!
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com