Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 16499|Odpowiedź: 0

[Źródło] Pobierz pliki bezpośrednio z Hadoop HDFS

[Skopiuj link]
Opublikowano 10.07.2019 14:20:11 | | |
Pobierz duże pliki z HDFS

Dostałem duży plik (około 2GB) DataInputStream z klienta HDFS i muszę go przechować jako plik na moim hostze.

Myślę o użyciu common IOUtils Apache i zrobieniu czegoś takiego......


Szukam innych rozwiązań, które są lepsze od tego. Głównym problemem jest użycie buforowania w wejściu i IOUtils.copy.

Dla plików większych niż 2GB zaleca się użycie IOUtils.copyLarge() (jeśli mówimy o tych samych IOUtils: org.apache.commons.io.IOUtils)

Replika w IOUtils używa domyślnego rozmiaru bufora 4Kb (choć można określić inny rozmiar bufora jako parametr).

Różnica między copy() a copyLarge() polega na tym, że zwraca wynik.

Ponieważ copy(), jeśli strumień jest większy niż 2GB, skutecznie użyjesz kopii, ale wynik to -1.

Dla copyLarge() wynikiem jest liczba bajtów w pełni skopiowanych.

Zobacz więcej w dokumentacji tutaj:


Logowanie do linku jest widoczne.



Jak sprawdzić, czy plik został w pełni pobrany za pomocą Spring Rest API

Stworzyłem proste API REST do obsługi plików z hdfs (pliki są duże i nie chcę ich kopiować lokalnie).

Chcę zarejestrować informację, że pobranie pliku zakończyło się pomyślnie, czyli przeczytać cały stream, ale nie wiem jak. Mogę tylko zarejestrować informację, że pobieranie pliku się rozpoczęło.

Będę bardzo wdzięczny za każdą pomoc.


Możesz spróbować stworzyć wrapper na InputStream i wywołać flagi na streamie close(close()).

Na przykład możesz użyć ProxyInputStream jako podstawy:








Poprzedni:Podziel się kilkoma mierzonymi stronami do otrzymywania kodów weryfikacyjnych SMS online
Następny:JS--Plugin: Załącznik do rozwoju drzewa i implementacji jest dostępny do pobrania!!
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com