Apache nifi Nifi在注入数据时崩溃

Apache nifi Nifi在注入数据时崩溃,apache-nifi,Apache Nifi,我使用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].t

我使用
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_存储库文件夹)


Nifi处理器中是否有任何参数可以帮助解决此问题?

问题有点不清楚--Apache Nifi在处理3000个100Mb文件或单个文件中的3000行后崩溃?在第一种情况下,我认为这是一个存储/堆问题。你能从
$NIFI\u HOME/logs/NIFI app.log
提供stacktrace吗


如果您能够使用NiFi 1.2.0+,我建议您使用来执行操作,因为性能更好,流程更易于设计。您可以将100Mb CSV文件作为单个操作发送(或使用
GetFile
),并让不同的处理器在文件的每一行上独立运行

使用
ListenHTTP
从单个文件中发送3000行后会发生这种情况。您是否建议使用
GetFile
?我的目标是通过Nifi处理器传递100Mb的数据(大约100万行)。此外,
ListenHTTP
可能不是注入100Mb数据的最佳选择。这个过程需要很多时间,而且我有http相关的问题(我应该设置超时和使用time.sleep)。我可以使用
ListFile
->
FetchFile
->吗???为了逐行读取CSV文件并将每一行转换为JSON字符串(就像我在Python代码中所做的那样),从文件系统读取文件肯定会更好。HTTP规范不适合大文件传输。无论是
GetFile
还是
ListFile
/
FetchFile
都将为您提供更好的性能,然后您可以轻松解析文件的行。如果您能展示处理器的演示序列,特别是逐行读取,我将不胜感激。正如我所看到的,
FetchFile
只获取文件的内容,但我如何将其逐行注入后续Nifi处理器,使每一行都是一个简单的JSON字符串?使用
SplitContent
按字节序列拆分,或使用
SplitText
按公共行结尾拆分。如果您的输入是JSON,那么还可以使用
SplitJSON
将JSON数组解析为单独的流文件,每个流文件包含一条记录。同样,如果可能的话,请首先评估记录处理器,因为它们的性能和易用性要高得多。