zoukankan      html  css  js  c++  java
  • Kettle5.4.0 java.lang.OutOfMemoryError

    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 ,根据你的内存调整一个适当的大小就行了

  • 相关阅读:
    Hibernate中日期(Date)类型 与oracle中日期的映射处理
    mssql注入经常使用的命令
    EL表达式遍历Map集合
    TomCat项目空间映射 配置
    JSP探针虚拟主机JSP环境检测工具
    什么是RSS
    大U盘容量的烦恼:copy 4G 以上单个文件时总是显示U盘已满
    Java初体验之bool
    何为Cookie
    转测试网站各项性能的31 个免费在线工具
  • 原文地址:https://www.cnblogs.com/kenwong/p/4599467.html
Copyright © 2011-2022 走看看