Nifi 在注入数据时崩溃
Nifi gets crashed when injecting the data
我使用ListenHTTP
作为Nifi过程的输入点。
我从 CSV 文件发送数据,总共需要大约 100Mb:
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 中是否有任何参数可以帮助解决此问题?
问题有点不清楚 -- Apache NiFi 在处理 3000 个 100Mb 文件或单个文件的 3000 行后崩溃?在第一种情况下,我认为这是一个 storage/heap 问题。您能否提供来自 $NIFI_HOME/logs/nifi-app.log
的堆栈跟踪?
如果您可以使用NiFi 1.2.0+,我建议您使用record processors进行操作,因为性能更好,流程更容易设计。您可以将 100Mb CSV 文件作为单个操作发送(或使用 GetFile
),并让各种处理器独立地对文件中的每一行进行操作。
我使用ListenHTTP
作为Nifi过程的输入点。
我从 CSV 文件发送数据,总共需要大约 100Mb:
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 中是否有任何参数可以帮助解决此问题?
问题有点不清楚 -- Apache NiFi 在处理 3000 个 100Mb 文件或单个文件的 3000 行后崩溃?在第一种情况下,我认为这是一个 storage/heap 问题。您能否提供来自 $NIFI_HOME/logs/nifi-app.log
的堆栈跟踪?
如果您可以使用NiFi 1.2.0+,我建议您使用record processors进行操作,因为性能更好,流程更容易设计。您可以将 100Mb CSV 文件作为单个操作发送(或使用 GetFile
),并让各种处理器独立地对文件中的每一行进行操作。