Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 16499|Відповідь: 0

[Джерело] Завантажуйте файли безпосередньо з Hadoop HDFS

[Копіювати посилання]
Опубліковано 10.07.2019 14:20:11 | | |
Завантажте великі файли з HDFS

Я отримав великий файл (близько 2 ГБ) DataInputStream з HDFS-клієнта, і мені потрібно зберігати його як файл на моєму хості.

Я думаю використати apache common IOUtils і зробити щось подібне......


Я шукав інші кращі рішення, ніж це. Головна проблема — використання буферизації у вхідних даних та IOUtils.copy.

Для файлів більшими за 2 ГБ рекомендується використовувати IOUtils.copyLarge() (якщо говорити про ті самі IOUtils: org.apache.commons.io.IOUtils)

Репліка в IOUtils використовує стандартний розмір буфера 4Kb (хоча можна вказати інший розмір буфера як параметр).

Різниця між copy() і copyLarge() полягає в тому, що він повертає результат.

Оскільки copy(), якщо потік більший за 2GB, ви успішно використаєте копію, але результат — -1.

Для copyLarge() результатом є кількість повністю скопійованих байтів.

Дивіться більше в документації тут:


Вхід за гіперпосиланням видно.



Як перевірити, чи файл повністю завантажений через API Spring Rest

Я створив простий REST API для подачі файлів з HDFS (файли великі, і я не хочу копіювати їх локально).

Я хочу зафіксувати інформацію, яку файл завантажив успішно, тобто прочитати весь потік, але не знаю як. Я можу записати лише ту інформацію, з якої почалося завантаження файлу.

Будь-яка допомога буде дуже цінною.


Можна спробувати створити обгортку на InputStream і активувати деякі прапорці на потоку close(close()).

Наприклад, ви можете використовувати ProxyInputStream як основу:








Попередній:Поділіться кількома перевіряними сайтами для отримання кодів SMS-верифікації онлайн
Наступний:JS--Plugin: Додаток для розробки дерева та реалізації можна завантажити!!
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com