首页 > 编程语言 > 详细

Kettle5.4.0 java.lang.OutOfMemoryError

时间:2015-06-25 12:18:19      阅读:598      评论:0      收藏:0      [点我收藏+]

CPU: Intel i3 3.40GHz

Memory : 8G

Kettle默认配置

将MySQL上的一张29W条数据的表,通过Kettle增量抽取到Vertica数据库中,结果在排序这一步报内存溢出异常。 

本来以为是kettle运行出错了,然后又重新试了一次,结果错误重现了。

具体异常如下:

org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space)
Caused by: java.lang.OutOfMemoryError: Java heap space

原来kettle默认的运行内存才256M和512M,我们要修改它的内存分配:

1. 通过修改服务器操作系统的环境变量,修改jvm的内存

可以在windows 更改系统环境变量

加上Java_OPTS=-Xms64m -Xmx512m 修改这两个数字为你的计算机能承受的内存数、

-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些

-Xmx:java heap最大值,使用的最大内存

2.修改kettle的配置文件,我个人用的这种方式。

在kettle的运行路径中,用文本编辑器打开Spoon.bat,找到:

 

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xmx4096m" "-XX:MaxPermSize=4096m"

最好将其中-Xmx1024m加大最好是256的整数倍

修改MaxPermSize最大值,运行时最大,也可以。

提高kettle执行效率的两种方式

一、加大jvm的虚拟内存;

这个上面已经提到如何修改了

二、提交行数的加大

这个在【表输出】step中,双击它会看到配置窗口,然后找到commit size ,根据你的内存调整一个适当的大小就行了

Kettle5.4.0 java.lang.OutOfMemoryError

原文:http://www.cnblogs.com/kenwong/p/4599467.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!