我在MySQL中有一个数据库,该数据库具有近200万行数和30列。我的流程是QueryDatabaseTable-> convertrecord-> PutElasticSearchHttpRecord。我的QueryDatabaseTable具有以下配置(请参见屏幕截图):
我的Jjava.args值如下:(尽管我将以下两个值更新为8 GB,但仍然收到Java堆空间错误)
java.arg.2 = -Xms512m java.arg.3 = -Xmx512m
我正在从表名中应用 select * (将在9列中导致749,748行),但出现“ Java堆空间错误”。是因为我试图跨9列调用749,748行吗?
使用NiFi QueryDatabaseTable处理器从MySQL调用如此庞大的数据集的最佳方法是什么。任何帮助深表感谢。谢谢!
答案 0 :(得分:0)
如以上评论所述。
NiFi default JVM
配置是 java.arg.2=-Xms512m java.arg.3=-Xmx512m
,这是 内存不足 问题的根本原因。
要解决此问题,increase
是 $NIFI_HOME/conf/bootstrap.conf
文件中的堆空间
根据您的要求更改配置,如下所示,我已将堆空间增加到8GB
# JVM memory settings
java.arg.2=-Xms8912m
java.arg.3=-Xmx8912m
要使这些配置在您的NiFi实例 RESTART
整个NiFi实例中生效,那么只有NiFi实例将与configured heap space
一起运行。
有关JVM内存不足问题的更多详细信息,请参见this链接。