在NiFi中从QueryDatabaseTable提取数据

时间:2018-11-21 19:47:27

标签: mysql apache apache-nifi

我在MySQL中有一个数据库,该数据库具有近200万行数和30列。我的流程是QueryDatabaseTable-> convertrecord-> PutElasticSearchHttpRecord。我的QueryDatabaseTable具有以下配置(请参见屏幕截图):

enter image description here

enter image description here

我的Jjava.args值如下:(尽管我将以下两个值更新为8 GB,但仍然收到Java堆空间错误

java.arg.2 = -Xms512m java.arg.3 = -Xmx512m

我正在从表名中应用 select * (将在9列中导致749,748行),但出现“ Java堆空间错误”。是因为我试图跨9列调用749,748行吗?

使用NiFi QueryDatabaseTable处理器从MySQL调用如此庞大的数据集的最佳方法是什么。任何帮助深表感谢。谢谢!

1 个答案:

答案 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链接。