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包里面方法存在,包冲突
网友评论