2011-12-09 4 views
0

私は現在、HBaseのテーブルに書き込みを行っているTableReducerを持って長いMapReduceジョブを実行しています。同じテーブルから別のスタンドアロンプ​​ログラムをスキャンしています。 MapReduceジョブは87%以上完了しましたが、スキャンプログラムのテーブルに新しい行が表示されません。は、HBaseの行は、MapReduceのジョブが完了した後にのみ利用可能TableReducerJobに追加されていますか?

は全体MapReduceジョブが完了した後にのみ表示さMapReduceジョブによって追加された行はありますか? table.setAutoFlush(false)

答えて

0

TableOutputFormatは、呼び出すことによって、クライアント側のバッファリング機構を可能にします。ジョブが完了すると、table.flushCommits()TableRecordWrter.close()によって呼び出されます。デフォルトのバッファサイズが適度2MBです、私はHBaseのサーバは変更がMapReduceのジョブ

0

で行うには理想的なものでコミットされているかどうかわからないと思うプロパティhbase.client.write.buffer

の値を変更することができますあなたの場合は、内部カウンターをMRトラッカーに表示する内部カウンターをMRジョブに追加することになります。 HBaseに提供している「Puts」の数に基づいて、これらのカウンタを更新することができます。

http://diveintodata.org/2011/03/15/an-example-of-hadoop-mapreduce-counter/

この記事では、より良いあなたを助けるかもしれません。

+0

うん、私はすでに私がMRジョブから私のHBaseのテーブルへの書き込みと同時に、私のWebベースのHBaseクライアントからそれを読み取ろうとすると何を見ていなかった、カウンターを持っているので、私はちょうどチェックしたいです。 は私が途中で失敗したロードされた別のMRジョブを、持っていた、と私はその失敗したジョブからの行の浮遊残党になるだろうかどうかわかりませんでしたが、それはきれいだように思えます。 –

関連する問題