1

基本的に、データを適切なレデューサーにルーティングする必要があります。各ReducerはTableReducerになります。

私は次のファイルを持っています

venodor1、user1、xxxx = n venodor1、user1、xxxx = n venodor2、user2、xxxx = n venodor2、user2、xxxx = n

次のhbaseテーブルに挿入する必要があります

テーブルvendor1:[user1] => {data:xxxx = n} [user2] => {data:xxxx = n}

テーブルvendor2:[user1] => {data:xxxx = n} [user2] => {data:xxxx = n}

形式は[ROW_ID]=>{[FAMILY]:[COLUMN]=[VALUE]}です。

  • 各ベンダーには異なるhbaseテーブルがあります
  • 行は、行の値に基づいて別のhbaseテーブルに移動する必要があります。

それを行う方法はありますか?カスケードで?これを回避する別の作業はありますか?

ありがとう、フェデリコ

4

1 に答える 1

0

私は方法を見つけました...レデューサーにテーブルを処理させます。TableReducer を使用する代わりに、Reducer を使用してください。セットアップ ロード時に、テーブル (テーブルはプロパティである必要があります) の自動フラッシュを false に設定し、バッファー サイズを設定します。すべてのテーブルのクリーンアップ時に flushCommit() 。レデューサーの出力は、キーと値に対して NullWritable にする必要があります (何かを出力したい場合を除きます)。reduce では table1.put tabe2.put などを実行するだけです

TableReducer の実装では、1 つのテーブルの内部でこのようなことを行っています。

于 2010-09-13T03:03:29.633 に答える