2017-10-01 16 views
1

私はNiFiでAvroレコードを含むフローファイルを取り込み、HBaseに挿入する必要があります。これらのフローファイルはサイズが異なりますが、10,000,000以上のレコードを持つものもあります。私はSplitAvroを2回使用します(1つは10,000レコードに分割し、1つは1レコードに分割します)。その後、ExecuteScriptプロセッサを使用してHBaseの行キーを取り出し、フローファイル属性として追加します。最後に、行キー属性を使用してHBaseに書き込むために、PutHBaseCell(バッチサイズが10,000)を使用します。AvroをNiFiでHBaseに一括読み込み

Avroを1 recに分割するプロセッサは非常に遅いです(同時タスクは5に設定されます)。 これをスピードアップする方法はありますか?このAvroデータをHBaseにロードするには、より良い方法がありますか?

(Iは各ノード16個のCPUと16ギガバイトのRAMを有し、仮想マシンから作られた2ノードNiFi(V1.2)クラスタ()を使用しています。)

+0

あなたの質問を書いてください。それはテキストの壁であり、あなたが何を求めているのか不明だからです。 –

+0

これはNiFIにとって本当に悪い使用です! –

答えて

1

の一部となる新しいPutHBaseRecordプロセッサはあり次のリリース(今投票された1.4.0のリリースがあります)。

このプロセッサでは、フローファイルを分割することを避け、フローファイルを送信するだけで数百万のAvroレコードがPutHBaseRecordに送信され、PutHBaseRecordはAvroリーダーで設定されます。

この方法では、パフォーマンスが大幅に向上するはずです。

関連する問題