1.安裝問題
0.資源庫 按鈕消失
在連接文件資源庫時,資源庫所在位置一定要設(shè)定為英文,否則下次啟動時將找不到該資源庫,Connect按鈕也會找不到
解決方法:重新將安裝包解壓安裝
1.安裝環(huán)境中存在多個java版本,運行時因找不到正確的java版本而報錯:
解決:修改set-pentaho-env.bat 文件,對152行以下內(nèi)容修改:
if exist "%_PENTAHO_JAVA_HOME%\bin\%__LAUNCHER%" (
echo DEBUG: Getting java.home from java settings
REM #set "_PENTAHO_JAVA=%_PENTAHO_JAVA_HOME%\bin\%__LAUNCHER%"
set "_PENTAHO_JAVA=C:\Program Files\Java\jdk1.8.0_221\bin\%__LAUNCHER%"
set "_PENTAHO_JAVA_HOME=C:\Program Files\Java\jdk1.8.0_221"
) else (
set _PENTAHO_JAVA_HOME=
set _PENTAHO_JAVA=%__LAUNCHER%
)
2.使用問題
1.kettle查詢mysql中的tinyint類型偿乖,自動轉(zhuǎn)為了bool類型
在連接參數(shù)處可以設(shè)置:
如果沒用 击罪,在“選項”中增加參數(shù):tinyInt1isBit=false
2.kettle在執(zhí)行sql查詢時將空串識別為NULL:
解決辦法:
找到kettle.properties文件哲嘲,增加:
KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y
3.在通過kitchen 執(zhí)行kettle任務(wù)時,指定日志級別
Kitchen 參數(shù)說明:
-rep:Repository name 任務(wù)包所在存儲名
-user:Repository username 執(zhí)行人
-pass:Repository password 執(zhí)行人密碼
-job:The name of the job to launch 任務(wù)包名稱
-dir:The directory (don''t forget the leading / or )
-file:The filename (Job XML) to launch
-level:The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing) 指定日志級別
-log:The logging file to write to 指定日志文件
-listdir:List the directories in the repository 列出指定存儲中的目錄結(jié)構(gòu)媳禁。
-listjobs:List the jobs in the specified directory 列出指定目錄下的所有任務(wù)
-listrep:List the defined repositories 列出所有的存儲
-norep:Don''t log into the repository 不寫日志
4. command not found:java
需要提前export javaPath
例如在上傳文件至S3時:
echo "Starting uploading file? ${target_tablename}_${date_id} to s3"
#將java命令你個添加到PATH環(huán)境變量
export PATH=/usr/local/jdk1.8.0_112/bin:$PATH
java -jar /home/hadoop/iot3.0_etl/data-integration/lib/tcl_aws_util-0.0.1-SNAPSHOT-jar-with-dependencies.jar cn-north-1 com.tcl.bp.cn.ods /iot_mysql_data/${target_tablename} ${target_tablename}_${date_id} /home/hadoop/iot3.0_etl/data/iot_mysql_data/${target_tablename}/${target_tablename}_${date_id} AKIAT2AVR3O7VLI4I2PH 1XoqOLZfTAQyvb0JjdKbg4T7PJplswe9qGZmJnWu
echo "Finished upload to AmazonS3 path:? /com.tcl.bp.cn.ods/iot_mysql_data/${target_tablename}/${target_tablename}_${date_id}";
5. 創(chuàng)建數(shù)據(jù)庫連接時眠副,設(shè)置默認schema
set search_path to 'dws';
6.遷移至linux報路徑錯誤
Root path does not exist: /home/crmsapp/soft/kettle/data-integration/D:\Software\data-integration\system\karaf\data1
這是由于緩存文件造成的錯誤,只需要找到..\pdi-ce-6.0.1.0-386\data-integration\system\karaf目錄下緩存文件刪除即可:如報錯所示竣稽,刪除 data1文件夾及其文件:rm -rf data1
7.Couldn't find starting point in this job.
org.pentaho.di.core.exception.KettleJobException:
Couldn't find starting point in this job.
at org.pentaho.di.job.Job.execute(Job.java:552)
at org.pentaho.di.job.entries.job.JobEntryJobRunner.run(JobEntryJobRunner.java:69)
at java.lang.Thread.run(Thread.java:748)
需要添加Start和成功組件
8.NoSuchMethodError-因版本升級引起的bug
以8.0 升級至9.1為例囱怕,
java.lang.NoSuchMethodError: org.joda.time.DateTime.withTimeAtStartOfDay()Lorg/joda/time/DateTime;
at com.taijue.rjhome.frame.util.FrameHelper.readNights(FrameHelper.java:36)
at com.taijue.user.external.ExternalInterfaceService.getNights(ExternalInterfaceService.java:738)
at com.taijue.user.external.ExternalInterfaceController.findKwhOfSeriesFromTime(ExternalInterfaceController.java:113)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
Truncated. see log file for complete stacktrace
查看相關(guān)的報錯的包,發(fā)現(xiàn)jar包已引入毫别,方法也存在娃弓,但是依然報錯NoSuchMethodError
原因:weblogic內(nèi)部存在包joda-time包,造成包沖突
解決辦法:
1.升級舊包
2.編譯時排除該包
ps:一般報錯NoSuchMethodError岛宦,有兩個原因
1.jar包里面方法不存在
2.jar包里面方法存在台丛,包沖突