Apache NiFi - OutOfMemory 错误:SplitText 处理器上超出了 GC 开销限制

2024-03-03

我正在尝试使用 NiFi 使用 HDF 1.2 处理大型 CSV 文件(每个文件可能有数十亿条记录)。我已经实现了我的流程,对于小文件来说一切正常。

问题是,如果我尝试将文件大小增加到 100MB(1M 记录),我会得到一个java.lang.OutOfMemoryError: GC overhead limit exceeded来自分割文本处理器负责将文件分割成单个记录。我已经搜索过了,这基本上意味着垃圾收集器执行的时间太长而没有获得太多的堆空间。我预计这意味着生成太多流文件的速度太快。

我该如何解决这个问题?我尝试更改 nifi 关于最大堆空间和其他内存相关属性的配置,但似乎没有任何效果。

现在我添加了一个中间体分割文本行数为 1K,这可以让我避免错误,但我不认为这是一个可靠的解决方案,因为当传入的文件大小可能会变得比这个大得多时,我担心我会得到相同的行为处理器。

欢迎任何建议!谢谢


错误的原因是当以行数 1 分割 1M 记录时,您正在创建 1M 流文件,这相当于 1M Java 对象。总的来说,使用两个 SplitText 处理器的方法很常见,可以避免同时创建所有对象。您可能可以在第一次分割时使用更大的分割大小,也许是 10k。对于 10 亿条记录,我想知道第三个级别是否有意义,从 1B 分割到 10M,然后 10M 分割到 10K,然后 10K 分割到 1,但我必须使用它。

需要考虑的一些其他事项包括将默认堆大小从 512MB 增加(您可能已经这样做了),以及确定是否确实需要拆分为 1 行。如果不了解有关流程的任何其他信息,就很难说,但在很多情况下,如果您想将每一行传送到某个地方,您可能会有一个处理器读取大型分隔文件并将每一行流式传输到目的地。例如,PutKafka 和 PutSplunk 就是这样工作的,它们可以获取一个 1M 行的文件,并将每一行流式传输到目的地。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache NiFi - OutOfMemory 错误:SplitText 处理器上超出了 GC 开销限制 的相关文章

  • 如何在Jenkins上更改工作空间并建立记录根目录?

    我希望将 Jenkins 的数据写入驱动器 E 因为这是服务器上的大型驱动器 Jenkins 本身安装在 C 上 我怎么做 我看到的默认配置是 工作区根目录 ITEM ROOTDIR 工作区 构建记录根目录 ITEM ROOTDIR 构建
  • 正则表达式 - 匹配不包含字符串的模式

    我对正则表达式很陌生 并且一直在寻找方法来做到这一点 但没有成功 给定一个字符串 我想删除以 abc 开头 以 abc 结尾且中间不包含 abc 的任何模式 如果我做 abc abc abc 它将匹配以 b 开头 以 abc 结尾并且中间包
  • 错误:模块“html”不提供视图引擎(Express)

    我正在尝试设置一个简单的路由应用程序 但在渲染页面时不断遇到错误 Error Module html does not provide a view engine 奇怪的是我已经在 app js 文件中指定了视图引擎 但仍然收到错误 app
  • Javascript/jQuery 外部高度()

    Does idOfLememt outerHeight 对所有浏览器产生相同的结果 IE7 有什么不同吗 只要去http api jquery com outerHeight http api jquery com outerHeight
  • Maven 构建错误 TOOLS.JAR NOT FOUND IN JRE

    我在构建 Maven 项目时遇到这个问题 请帮我解决 ERROR Failed to execute goal org apache maven plugins maven compiler plugin 2 5 1 compile def
  • Android 的代码覆盖率[重复]

    这个问题在这里已经有答案了 可能的重复 Android测试代码覆盖率 Eclipse https stackoverflow com questions 3282702 android test code coverage eclipse
  • 关闭扫描仪是否会影响性能

    我正在解决一个竞争问题 在问题中 我正在使用扫描仪获取用户输入 这是 2 个代码段 一个关闭扫描器 一个不关闭扫描器 关闭扫描仪 import java util Scanner public class JImSelection publ
  • UWP 应用程序在与商店关联后崩溃

    我正在为 Windows 创建一个 cordova 应用程序 将应用程序与商店关联后 应用程序起始页变为白色空白 如果应用程序使用包标识名称 com something moretext 则该应用程序可以正常工作 但我的商店包身份名称是 5
  • 防止 Ada DLL 中的名称损坏

    有没有一种简单的方法可以防止在创建 Ada DLL 时 Ada 名称被破坏 这是我的 adb 代码 with Ada Text IO package body testDLL is procedure Print Call is begin
  • Swift 中的 quitFirstResponder

    我怎样才能用Apple的新语言实现它 Objective C 代码 void touchesBegan NSSet touches withEvent UIEvent event for UIView view in self view s
  • Maven2继承

    如果我有一个父 pom 并且想将其继承到多个项目 我通常通过添加到项目顶部来做到这一点
  • 文本处理问题:删除其中一列不包含特定值的行

    我有一个制表符分隔的文件 如下所示 input sequence match sequence score receptor group epitope antigen organism ASRPPGGVNEQF ASRPPGGVNEQF
  • 如何用LoaderManager自动重新查询

    我有一个应用程序显示来自 SQLite DB 的数据 并且数据不断变化 所以显然 我认为我应该使用 LoaderManager 来显示数据 我读过一些关于将 LoaderManager 与 SQLite 结合使用的内容 然后看到了亚历克斯
  • 用 Beautiful Soup 进行抓取:为什么 get_text 方法不返回该元素的文本?

    最近我一直在用 python 开发一个项目 其中涉及抓取一些网站的一些代理 我遇到的问题是 当我尝试抓取某个知名代理站点时 当我要求 Beautiful Soup 查找 IP 在代理表中的位置时 它并没有按照我的预期执行操作 我将尝试查找每
  • JavaScript 中“键”的类型是什么?

    当我失去焦点并开始思考一个愚蠢的问题时 我遇到了这样的时刻 var a b value b 的类型是什么 我的意思不是 值 的类型 而是标记为 b 的实际键 背景 当我必须创建一个字符串键时 我开始想知道这一点 var a b value
  • RavenDB:为什么我会在此多重映射/归约索引中获得字段空值?

    受到 Ayende 文章的启发https ayende com blog 89089 ravendb multi maps reduce indexes https ayende com blog 89089 ravendb multi m
  • 如何在 Symfony 4 中为测试环境设置数据库

    我对如何在 symfony 4 中为测试环境设置数据库感到困惑 我曾经在配置测试 ymlsymfony 3 及以下版本中的文件 最佳做法是什么 我应该重新创建一个学说 yaml文件输入配置 包 测试 该文档提到如何通过编辑 phpunit
  • 尝试了解天蓝色云服务中的负载平衡

    我正在维护一个天蓝色的云服务 它有 1 个 Web 角色和几个辅助角色 该网络角色有多个实例 当我从资源中打开云服务时 我可以看到服务端点和公共IP地址 我想了解这个蔚蓝云服务中的流量负载是如何平衡的 我搜索了负载均衡器 但在订阅中找不到它
  • 将 read.csv 与符号链接文件一起使用

    我正在尝试做什么 我的源文件非常大 我想避免将其复制到其他文件夹中 我决定创建一个指向大文件的符号链接并想使用read csv读取文件 文件夹结构 项目1 数据 源文件 csv 项目2 数据 别名到源文件 csv 什么地方出了错 读取源文件
  • GAE 无法部署到 App Engine

    我正在尝试从 Eclipse 发布 Web 应用程序 我在 GAE 上创建了四个项目 可以通过登录我的帐户并查看控制台来查看它们 我已经改变了appengine web xml到项目的应用程序 ID 如果我将其更改为 GAE 上第一个创建的

随机推荐

  • BeautifulSoup 返回意外的额外空格

    我正在尝试使用 BeautifulSoup 从 html 文档中获取一些文本 在一个对我来说非常相关的案例中 它产生了一个奇怪而有趣的结果 在某一点之后 汤在文本中充满了额外的空格 空格将每个字母与下一个字母分开 我试图在网络上搜索以找到原
  • 识别何时使用模运算符

    我知道modulus http en wikipedia org wiki Modulo operation 运算符计算除法的余数 如何确定需要使用模运算符的情况 我知道我可以使用模运算符来查看数字是偶数还是奇数 素数还是合数 但仅此而已
  • 使用 Pandas 时明显缺少 dateutil.tz 包?

    我的python 2 7代码如下 import pandas as pd from pandas import DataFrame DF rando DataFrame 1 2 3 然后当我执行时 我收到一个奇怪的错误dateutil tz
  • 如何将通用 JavaScript 对象序列化为 XML

    主流 JavaScript 库 YUI jQuery Dojo 之一是否提供了将 JavaScript 对象序列化为 XML 作为文本 的方法 有no用于本机对象到 XML 序列化的本机 API 然而 有一些 3rd 方库 比如这个 它会输
  • 从外部程序集中动态加载类型

    在托管代码中 假设调用代码没有对该程序集的静态引用 如何在运行时从另一个程序集加载托管类型 为了澄清起见 假设我将 Lib cs 中的类 Lib 编译为 Lib dll 我想在一个名为 Foo dll 的单独程序集中编写一个类 Foo 它没
  • Django:如何从时间帖子中获取时差?

    假设我有一个模型课程 class Post models Model time posted models DateTimeField auto now add True blank True def get time diff self
  • 如何声明和使用 NSString 全局常量[重复]

    这个问题在这里已经有答案了 可能的重复 Objective C 中的常量 https stackoverflow com questions 538996 constants in objective c 我将一些应用程序设置存储在 NSU
  • 缺少授权类型错误

    我只是想学习 OAuth 我写了一些代码来测试它 当我提交请求时我得到 错误 无效请求 error description 缺少授权类型 邮递员的错误 import java util Optional import static org
  • 在 Python 中分割大型 XML 文件

    我希望将一个巨大的 XML 文件分割成更小的部分 我想扫描文件以查找特定标签 然后获取 和 之间的所有信息 然后将其保存到文件中 然后继续浏览文件的其余部分 我的问题是试图找到一种干净的方法来记录标签的开始和结束 以便我可以在使用 for
  • Windows 卷上的 docker-compose 不工作

    过去一周我一直在使用 Docker 认为容器的想法非常有用 但是尽管在过去 3 天里我阅读了所有内容 但我还是无法让卷映射发挥作用 get docker compose to use my existing volume Docker Ve
  • 在 Jenkins CI 中成功构建后打包多个发布配置文件 .pubxml

    我在用着Jenkins https jenkins ci org 用于持续集成 现在我有一份使用这个命令的工作Jenkins在构建步骤的命令行参数中 这是命令 WORKSPACE OEVizion ITVizion OEVizion Web
  • 提取 .zip 存档的最快方法

    提取 zip 档案的最快方法是什么 我的应用程序的性能很大程度上取决于提取 zip 文件的速度 我正在使用 dotNetzip atm 但似乎可以有更多更快的工具 如果有 他们安全吗 我听说 QuickLZ 是最快的 但没有测试过 也没有找
  • Rails Select helper in form required True 不起作用

    我有一个 Rails 3 2 21 应用程序 其中使用select助手的形式如下 这适用于选择选项的基本功能 包括空白选项等 但是不起作用的是 required gt true or the class gt select 即使选择为空并且
  • 如何计算两个 Zend_Date 对象之间的差异(以月为单位)

    我有两个对象Zend Date类 我想计算它们在整个日历月中的差异 我该怎么做
  • 在 Swing GUI 中提供空白

    没有空白的 GUI 显得 拥挤 如何在不显式设置组件位置或大小的情况下提供空白 使用各种LayoutManagers可以在各个组件之间提供间距 1 边框布局 重载构造函数 BorderLayout int水平间隙 int垂直间隙 http
  • 如何设置从 DependencyObject 派生的类型的 DependencyProperty 的默认值

    我正在创建一个自定义 WPF 控件NOT一个用户控件 此自定义控件有两个属性 UnselectedAppearance 和 SelectedAppearance 这两个属性具有相同的类型 外观 均派生自 DependencyObject A
  • UnityScript 与 Javascript [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我知道语言之间存在差异 例如课程等 我想知道的是 如果 UnityScript 与 Javascript 不同 为什么 Unity3D 文档会为
  • 反应式更新 Shiny 中的 sliderInput

    我正在尝试改变值sliderInput动态地 现在的困难是我想改变sliderInput具有一个值 到sliderInput有一个范围 这似乎不起作用 下面代码中的第一个操作按钮可以工作 而第二个操作按钮则不能执行其预期的操作 是切换到的唯
  • 查找字符串中数字的位置

    下面是我在表中的内容myTable id myWord 1 AB123 2 A413D 3 X5231 4 ABE921 当我执行时 SELECT id Locate 1 myWord as myPos FROM myTable 我得到的位
  • Apache NiFi - OutOfMemory 错误:SplitText 处理器上超出了 GC 开销限制

    我正在尝试使用 NiFi 使用 HDF 1 2 处理大型 CSV 文件 每个文件可能有数十亿条记录 我已经实现了我的流程 对于小文件来说一切正常 问题是 如果我尝试将文件大小增加到 100MB 1M 记录 我会得到一个java lang O