KETTLE——Weka处理大数据量内存溢出问题
现在做的一个项目ETL采用KETTLE,通过Perl脚本进行分天表、月表及年表的创建,并修改KETTLE创建的抽取任务模板。即使这样在处理天表表近百万数据量时,Kettle也会有时发生内存溢出现象,导致抽取任务失败。今天发现了一哥们BLOG中的解决办法,特分享。
以Spoon.bat为例,其他组件和.sh操作类似
用文本编辑器打开Spoon.bat找到:
REM ******************************************************************
REM ** Set java runtime options **
REM ** Change 256m to higher values in case you run out of memory. **
REM ******************************************************************
set OPT=-Xmx1444m -cp %CLASSPATH% -Djava.library.path=libswt\win32\ -DKETTLE_HOME="%KETTLE_HOME%" -DKETTLE_REPOSITORY="%KETTLE_REPOSITORY%" -DKETTLE_USER="%
KETTLE_USER%" -DKETTLE_PASSWORD="%KETTLE_PASSWORD%" -DKETTLE_PLUGIN_PACKAGES="%KETTLE_PLUGIN_PACKAGES%"
修改这里的数字...-Xmx1444m...
我装的是jdk-1_5_0_14这里的1444m是极限了.大家可以在自己的机器上试验不同的数值.
WEKA(感谢网友:comcome84)
用文本编辑器打开RunWeka.ini找到:
# placeholders ("#bla#" in command gets replaced with content of key "bla")
# Note: "#wekajar#" gets replaced by the launcher class, since that jar gets
# provided as parameter
maxheap=1444m
这里同样被我修改成1444m.
感谢本文方法来源:http://blog.csdn.net/senaku/archive/2008/07/03/2609021.aspx