この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 16499|答える: 0

[出典] Hadoop HDFSから直接ファイルをダウンロードします

[リンクをコピー]
掲載地 2019/07/10 14:20:11 | | |
HDFSから大きなファイルをダウンロードしてください

HDFSクライアントから約2GBの大きなDataInputStreamファイルを取得し、ホストにファイルとして保存する必要があります。

私はapacheの共通IOUtilsを使って、こういうことをしようかと考えています......


この方法よりも良い解決策を探していました。 主な懸念は、入力およびIOUtils.copyにおけるバッファリングの使用です。

2GBを超えるファイルについてはIOUtils.copyLarge()の使用が推奨されます(同じIOUtilsの場合:org.apache.commons.io.IOUtils)

IOUtilsのレプリカはデフォルトのバッファサイズ4Kbを使用します(ただし、パラメータとして別のバッファサイズを指定することも可能です)。

copy() と copyLarge() の違いは、結果を返すことです。

copy()のため、ストリームが2GBを超えるとコピーは正常に使えますが、結果は-1になります。

copyLarge() の場合、結果は完全にコピーされたバイト数となります。

詳細はこちらのドキュメントをご覧ください:


ハイパーリンクのログインが見えます。



Spring Rest APIを通じてファイルが完全にダウンロードされているかどうかを確認する方法

HDFSからファイルを提供するための簡単なREST APIを作成しました(ファイルが大きいのでローカルにコピーしたくありません)。

ファイルダウンロードが成功した情報を記録したいのですが、つまりストリーム全体を読みたいのですが、やり方がわかりません。 ファイルダウンロードが始まった情報だけを記録できます。

どんな助けでも大変ありがたいです。


InputStreamでラッパーを作成し、streamのclose(close())でフラグをトリガーしてみてください。

例えば、ProxyInputStreamを基準に使うことができます:








先の:SMS認証コードのオンライン受信に関するいくつかの評価されたウェブサイトを共有してください
次に:JS--プラグイン:ツリー開発と実装の添付ファイルがダウンロード可能です!!
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com