私はListenHTTP
をNifiプロセスの入力ポイントとして使用します。データを注入するとNifiがクラッシュする
私は完全に100Mbの周りを取るCSVファイルからデータを送信します。
import requests
import csv
import pandas as pd
import json
import time
url = 'http://localhost:8085/contentListener'
df = pd.read_csv('demo_dataset.csv')
for i in df.index:
data = df.iloc[i].to_json()
r = requests.post(url, data=data, allow_redirects=True)
time.sleep(0.1)
問題がNifiを約3000項目を処理した後にクラッシュしてしまうことです。それから、再起動する前に手動でログとflowfile_repositoryフォルダを空にしておく必要があります。
NifiプロセッサListenHTTP
またはNifi itslefにこの問題の解決に役立つパラメータがありますか?
これは、 'ListenHTTP'を使って1つのファイルから3000行を送信した後に起こります。 'GetFile'を使うことをお勧めしますか?私の目的は100Mbのデータ(約100万行)をNifiプロセッサに渡すことです。 – Dinosaurius
さらに、 'ListenHTTP'はおそらく100Mbのデータを注入する最良のオプションではありません。プロセスには多くの時間がかかり、httpに関連する問題があります(タイムアウトを設定してtime.sleepを使用する必要があります)。 'ListFile' - >' FetchFile' - > ???を使うことができますか?私のCSVファイルを1行ずつ読み込み、各行をJSON文字列に変換するために(私のPythonコードのように)? – Dinosaurius
ファイルシステムからファイルを読み込むことは間違いなく良いでしょう。 HTTP仕様は大きなファイル転送には適していません。 'GetFile'や' ListFile'/'FetchFile'の方がパフォーマンスが向上し、ファイルの行を簡単に解析することができます。 – Andy