我使用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它有助于解决此问题吗?
答案 0 :(得分:1)
问题有点不清楚 - Apache NiFi在处理3000个100Mb文件或单个文件中的3000行后崩溃了吗?在第一种情况下,我认为这是一个存储/堆问题。你能否提供$NIFI_HOME/logs/nifi-app.log
的堆栈跟踪?
如果您能够使用NiFi 1.2.0+,我建议您使用record processors进行操作,因为性能要好得多,流程也更容易设计。您可以将100Mb CSV文件作为单个操作发送(或使用GetFile
),并使各种处理器独立地在文件中的每一行上运行。