6

パブリッシュ サブスクライブ モデルに基づく通知システムを実装して、データが HDFS に到着/ロードされたときにデータの可用性について通知します。これを探す方法が見つかりませんでした。これを行うために使用できる HDFS API はありますか、または HDFS に書き込まれた新しいデータの情報を取得するにはどのような方法を使用すればよいですか? 私は Hadoop v2.0.2 を使用していますが、HCatalog を使用したくありません。これを行うために独自のツールを実装したいと考えています。

4

2 に答える 2

3

あなたが探しているのは ですOozie Coordinator

HDFSはファイル システムであるため、ファイルの可用性を確認するには、HDFS の上に何かを構築する必要があります。HBaseトリガーされたプロシージャであるコプロセッサがあります。ただし、HBase テーブルでのみ使用できます。そのため、HDFS でのデータ可用性の検出には使用できません。

Oozieは、Hadoop ジョブを管理するためのワークフロー スケジューラ システムです。Oozie コーディネータージョブは、時間 (頻度) とデータの可用性によってトリガーされる繰り返しの Oozie ワークフロー ジョブです。また、そこから他のプログラムを実行することもできます:

Oozie は Hadoop スタックの残りの部分と統合されており、すぐに使用できるいくつかのタイプの Hadoop ジョブ (Java map-reduce、ストリーミング map-reduce、Pig、Hive、Sqoop、Distcp など) とシステム固有のジョブ ( Java プログラムおよびシェル スクリプト)。

そのため、通知システムにもファイル可用性トリガーを使用できます。

于 2013-02-27T15:46:30.580 に答える
1

HDFS を使用している場合は、HBase に必要な機能があるため、HBase を確認することをお勧めします。HBase では、データがテーブルに書き込まれるたびに少しのコードを実行する、基本的に MySQL トリガーと同等の動作をするプリプット (またはポストプット) コプロセッサーを作成できます。

HBase がユース ケースに合わず、HDFS を使用する必要がある場合、私の知る限り、同様のトリガーはありません。HDFS API を独自のコードでラップして、適切な状況でデータがファイル システムに書き込まれるたびに通知を実行することができます。または、変更のために HDFS をポーリングすることもできます (これは醜い代替手段のように聞こえます)...

それが役立つことを願っています

于 2013-02-27T06:33:45.423 に答える