Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 16499|Yanıt: 0

[Kaynak] Dosyaları doğrudan Hadoop HDFS'den indirin

[Bağlantıyı kopyala]
Yayınlandı 10.07.2019 14:20:11 | | |
HDFS'den büyük dosyalar indirin

HDFS istemcisinden yaklaşık 2GB büyük bir DataInputStream dosyası aldım ve bunu hostumda dosya olarak saklamam gerekiyor.

Apache common IOUtils kullanmayı ve buna benzer bir şey yapmayı düşünüyorum......


Bundan daha iyi başka çözümler arıyordum. Ana endişe, giriş ve IOUtils.copy dosyalarında tamponlama kullanımıdır.

2GB'dan büyük dosyalar için IOUtils.copyLarge() kullanılması önerilir (aynı IOUtils'ten bahsediyorsak: org.apache.commons.io.IOUtils)

IOUtils'teki replika, varsayılan tampon boyutunu 4Kb kullanır (ancak parametre olarak başka bir tampon boyutu belirtebilirsiniz).

copy() ile copyLarge() arasındaki fark, sonucu döndürmesidir.

Çünkü copy(), akış 2GB'dan büyükse, kopyayı başarıyla kullanırsınız, ancak sonuç -1 olur.

copyLarge() için sonuç, tamamen kopyalanmış bayt sayısıdır.

Daha fazlasını buradaki dokümantasyonda bulabilirsiniz:


Bağlantı girişi görünür.



Bir dosyanın Spring Rest API üzerinden tamamen indirilip indirilmediğini nasıl kontrol edilir?

HDFS'den dosya sunmak için basit bir REST API oluşturdum (dosyalar büyük ve yerel olarak kopyalamak istemiyorum).

Dosya indirmenin başarıyla tamamlandığını kaydetmek istiyorum, yani tüm yayını okumak istiyorum ama nasıl yapacağımı bilmiyorum. Dosya indirmenin başladığı bilgileri kaydedebiliyorum.

Her türlü yardım çok değerli olur.


InputStream üzerinde bir wrapper oluşturup akış close(close()) üzerinde bazı bayrakları tetikleyebilirsin.

Örneğin, ProxyInputStream'i temel olarak kullanabilirsiniz:








Önceki:SMS doğrulama kodları almak için birkaç ölçülü web sitesini paylaşın
Önümüzdeki:JS--Eklenti: Ağaç Geliştirme ve Uygulama Eki indirilebilir!!
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com