0

Hadoop で毎日増加するデータを処理する方法:

例えば:

初日、入力フォルダー (hadoop/demo など) に 100 万個のファイルがある場合があります。

同じフォルダで 2 日目には、既存の 100 万ファイル + 別の新しい 100 万ファイルから合計 200 万ファイルが増える可能性があります。

同様に 3 日 4 日... 続けます。

私の制約は -> 初日のファイルは次の日に処理されるべきではありません。

(つまり) 新しいファイルが追加されたときに、既に処理されたファイルを再度処理するべきではありません。具体的には、新しく追加されたファイルのみを処理し、古いファイルは無視する必要があります。

この問題を解決できる方法で私を助けてください。

それでも制約を理解していない場合は、制約について詳しく説明できるように、不明な点を教えてください!

4

1 に答える 1

2

これはアプリケーション ロジックの一部であるため、hadoop 自体によってサポートされているわけではありません。HDFS ベースのソリューションをお勧めします。これにより、まだ処理されていないデータを含むディレクトリ (または毎日のサブディレクトリを含むディレクトリのより良い階層) が作成されます。
毎日の仕事はそこにあるすべてのデータを取得し、処理して「処理済み」フォルダーに移動する必要があります。
理にかなっている通常のトレードオフは、一部のファイルの偶発的な二重処理が問題を引き起こさないようにロジックを作成することです。
. この場合、処理後、移動前のジョブのクラッシュは問題になりません。
毎日のスケジューリングの代わりに、いくつかの wokrflow ツールを使用して、データの可用性によってジョブをトリガーすることができますが、個人的にはまだ使用していません。

于 2012-02-10T09:04:11.030 に答える