gpt4 book ai didi

java - Nifi ExecuteScript 与 Groovy : OOM exception

转载 作者:行者123 更新时间:2023-12-02 09:34:51 28 4
gpt4 key购买 nike

我正在 NiFi 中使用 ExecuteScript 处理器来使用我指定的流文件执行 PUT 命令。但是,现在当文件大于 2GB 时,我会收到 OutOfMemory 异常。我的 NiFi 内存设置要高得多。我还看到更大的流文件与其他一些提供的 Nifi 处理器配合使用。

我无法使用 InvokeHTTP,因为我有 2 个不同的返回代码,它们之间的关系相互冲突,需要处理。

目前我的 NiFi JVM 设置是

java.arg.2=-Xms16g
java.arg.3=-Xmx32g

以下是数据如何被 PUT 的片​​段。

    InputStream i = session.read(flowFile)
def baseUrl = new URL(Location)
def connection = baseUrl.openConnection()
connection.setDoOutput(true)
connection.setRequestMethod('PUT')
connection.connect()

OutputStream os = connection.getOutputStream()
os << i
i.close()

os.flush()
os.close()

NiFi 中是否有需要设置 groovy 来增加此内存限制?目前运行NiFi 1.9.2

最佳答案

使用输入流读取缓冲区并添加 ChunkedStreamingMode 解决了问题

connection.setChunkedStreamingMode(1024)
byte[] buffer = new byte[1024];
int len;
while ((len = i.read(buffer)) != -1) {
os.write(buffer, 0, len);
os.flush;
}

关于java - Nifi ExecuteScript 与 Groovy : OOM exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57617687/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com