Kettle5.4.0 java.lang.OutOfMemoryError

來源:互聯網
上載者:User

標籤:

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.