1. 程式人生 > >Kettle 7.1.0.0-12 安裝版無法啟動的問題

Kettle 7.1.0.0-12 安裝版無法啟動的問題

1.Kettle無法啟動解決方法:

只要修改一下spoon.bat裡記憶體配置:

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms2058m" "-Xmx1024m" "-XX:MaxPermSize=256m"

改為

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx512m" "-XX:MaxPermSize=256m"

修改之後儲存,重新啟動spoon.bat,奇蹟出現了,Kettle真的啟動成功了!

 

修改JAVA_HOME標識:

“_PENTAHO_JAVA_HOME” 替換為 “JAVA_HOME”

2.Kettle無法啟動原因分析:

主要有兩種原因:

1) 引數中-Xms的值大於-Xmx,或者-XX:PermSize的值大於-XX:MaxPermSize;

2) -Xmx的值和-XX:MaxPermSize的總和超過了JVM記憶體的最大限制,比如當前作業系統最大記憶體限制,或者實際的實體記憶體等等。

看起來,是由於本機記憶體被佔用過多,而JVM引數設定過大,導致JVM無法啟動,故spoon.bat執行後,Kettle無法啟動啊,額,玩大資料分析還得要銀子換電腦嗎?

3.JVM(java虛擬機器)相關概念

在排查kettle問題時,用到了幾個概念,都貼在這裡吧。

1)堆(Heap)和非堆(Non-heap)記憶體

JVM主要管理兩種型別的記憶體:堆和非堆。

簡單來說堆就是Java程式碼可及的記憶體,是留給開發人員使用的;非堆就是JVM留給自己用的,

2)JVM的幾個引數:

-Xms2058mJVM初始分配的堆記憶體

-Xmx1024mJVM最大允許分配的堆記憶體,按需分配

-XX:PermSize=128MJVM初始分配的非堆記憶體

-XX:MaxPermSize=256MJVM最大允許分配的非堆記憶體,按需分配