避坑排错指南

1.安装问题

0.资源库 按钮消失

在连接文件资源库时,资源库所在位置一定要设定为英文,否则下次启动时将找不到该资源库,Connect按钮也会找不到

解决方法:重新将安装包解压安装

1.安装环境中存在多个java版本,运行时因找不到正确的java版本而报错:

解决:修改set-pentaho-env.bat 文件,对152行以下内容修改:

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类型,自动转为了bool类型

在连接参数处可以设置:

如果没用 ,在“选项”中增加参数:tinyInt1isBit=false

2.kettle在执行sql查询时将空串识别为NULL:

解决办法:

找到kettle.properties文件,增加:

KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y

3.在通过kitchen 执行kettle任务时,指定日志级别

Kitchen 参数说明:

-rep:Repository name 任务包所在存储名

-user:Repository username 执行人

-pass:Repository password 执行人密码

-job:The name of the job to launch 任务包名称

-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 列出指定存储中的目录结构。

-listjobs:List the jobs in the specified directory 列出指定目录下的所有任务

-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环境变量

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. 创建数据库连接时,设置默认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

查看相关的报错的包,发现jar包已引入,方法也存在,但是依然报错NoSuchMethodError

原因:weblogic内部存在包joda-time包,造成包冲突

解决办法:

1.升级旧包

2.编译时排除该包

ps:一般报错NoSuchMethodError,有两个原因

  1.jar包里面方法不存在

  2.jar包里面方法存在,包冲突

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。