共有ネットワーク ドライブから HDFS にデータをインポートする方法について POC を行っています。データは共有ドライブの異なるフォルダーにあり、各フォルダーは HDFS の異なるディレクトリに対応します。これを行う一般的なツールをいくつか調べましたが、それらのほとんどは、ファイル全体ではなく、小さなデータを移動するためのものです。これらは私が見つけたツールです。他に何かありますか?
Apache Flume:データを生成する運用サーバーが少数しかなく、データをリアルタイムで書き出す必要がない場合は、Web HDFS または NFS 経由でデータを HDFS に移動することも理にかなっています。書き出されるデータの量は比較的少なく、数時間ごとに数 GB のいくつかのファイルが HDFS に影響を与えることはありません。この場合、Flume を計画、構成、およびデプロイする価値はありません。Flume は実際にはリアルタイムでイベントをプッシュすることを目的としており、データのストリームは継続的であり、その量はかなり大きいです。【サファリオンラインのFlume bookとflumeクックブック】
Apache Kafka: Producer-consumer モデル : メッセージはディスク上に保持され、クラスター内でレプリケートされてデータの損失を防ぎます。各ブローカーは、パフォーマンスに影響を与えずに数テラバイトのメッセージを処理できます。
Amazon Kinesis: Flume のようなリアルタイム データの有料バージョン
WEB HDFS:リダイレクトを自動的にたどったり、ファイル データを送信したりせずに、HTTP PUT 要求を送信します。書き込むファイル データを含む Location ヘッダーの URL を使用して、別の HTTP PUT 要求を送信します。[ http://hadoop.apache.org/docs/r1.0.4/webhdfs.html#CREATE]
オープン ソース プロジェクト: https://github.com/alexholmes/hdfs-file-slurper
私の要件は簡単です:
- ファイルのディレクトリをポーリングし、ファイルが来たら、それを HDFS にコピーし、ファイルを「処理済み」ディレクトリに移動します。
- 複数のディレクトリに対してこれを行う必要があります