1

HandleHttpRequest を使用してプロセッサ NIFI にいくつかの HTTP 要求 (GET) を送信し、Topic Kafka に送信する jMeter を使用したバッチ テストがあります。

問題は、StandardHTTPContextMap が SERVICE_UNAVAILABLE エラーを返すことです。これは、データフローの速度が来歴記録速度を超えているときに発生するようですが、よくわかりません。

誰でも何か考えがありますか?部分ログをドロップします。

2016-05-05 15:12:14,064 WARN [Timer-Driven Process Thread-7] 
o.a.n.p.PersistentProvenanceRepository The rate of the dataflow is exceeding the provenance recording rate. Slowing down flow to accommodate. Currently, there are 96 journal files (533328812 bytes) and threshold for blocking is 80 (1181116006 bytes)

2016-05-05 15:12:20,310 INFO [Provenance Repository Rollover Thread-2] 
o.a.n.p.PersistentProvenanceRepository Successfully merged 16 journal files (46096 records) into single Provenance Log File ./provenance_repository/8913710.prov in 43254 milliseconds

2016-05-05 15:12:20,314 INFO [Provenance Repository Rollover Thread-2] o.a.n.p.PersistentProvenanceRepository Successfully Rolled over Provenance Event file containing 65422 records

2016-05-05 15:12:20,398 INFO [Timer-Driven Process Thread-7]   
o.a.n.p.PersistentProvenanceRepository Provenance Repository has now caught up with rolling over journal files. Current number of journal files to be rolled over is 80

2016-05-05 15:12:20,399 INFO [Timer-Driven Process Thread-7] 
o.a.n.p.PersistentProvenanceRepository Created new Provenance Event Writers for events starting with ID 9190418

2016-05-05 15:12:21,422 INFO [qtp1693512967-121] 
o.a.n.p.standard.HandleHttpRequest HandleHttpRequest[id=3858f0ad-b165-427b-a460-67fbf7cff0d8] Sending back a SERVICE_UNAVAILABLE response to 172.26.60.27; request was GET 172.26.60.27
4

1 に答える 1

3

表示される HTTP 応答が HttpContextMap[1] から来ているという分析は正しいです。具体的には、「リクエストの有効期限」プロパティです。リクエストが構成された量を超えてマップ内にある場合、自動的に SERVICE_UNAVAILABLE で応答します。

あなたの問題は、NiFi が送信するすべてのリクエストを処理するのに時間がかかりすぎて、Provenance Repo がロールオーバーを強制する原因であると思います。これは「Stop the world」イベントです。そのため、データの処理を 6 秒間停止しました (リクエストの有効期限が切れます)。

ランダムな 6 秒間の「Stop the world」イベントを受け入れるだけではなく、フローや構成について何も知らずに、フローをスケーリングまたは調整する必要があると仮定すると、基本的にフローを調整する必要があります。いくつかのオプションは次のとおりです。

  • より大きなノードまたはより多くのノードにスケーリング
  • 多数の FlowFile ではなく、より大きな FlowFile を処理します (Provenance の高速化に大いに役立ちます)。
  • 来歴リポジトリを独自のディスクにプッシュ/多くのディスクにプッシュ

[1] https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.http.StandardHttpContextMap/index.html

于 2016-05-11T11:17:08.087 に答える