Дженкинс Пентахо Ошибка

У меня есть задание PDI Kitchen на моем сервере, которое я запускаю через скрипт с использованием Crontab на моем сервере Ubuntu 14.04, и все работает нормально.

Теперь я пытаюсь запланировать это с помощью Jenkins (который установлен на том же сервере), и я получаю следующую ошибку:

2017/10/26 14:55:01 - Kitchen - Logging is at level : Basic logging
2017/10/26 14:55:01 - Kitchen - Start of run.
2017/10/26 14:55:02 - cfgbuilder - Warning: The configuration parameter [org] is not supported by the default configuration builder for scheme: sftp
14:55:12,522 ERROR [KarafLifecycleListener] The Kettle Karaf Lifycycle Listener failed to execute properly. Releasing lifecycle hold, but some services may be unavailable.
2017/10/26 14:55:12 - JOB_EXTRACT - Start of job execution
2017/10/26 14:55:12 - JOB_EXTRACT - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : A serious error occurred during job execution: 
2017/10/26 14:55:12 - JOB_EXTRACT - Error occurred while trying to connect to the database
2017/10/26 14:55:12 - JOB_EXTRACT - 
2017/10/26 14:55:12 - JOB_EXTRACT - Error connecting to database: (using class org.gjt.mm.mysql.Driver)
2017/10/26 14:55:12 - JOB_EXTRACT - Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "${BI_SERVER.PORT}"'.
2017/10/26 14:55:12 - JOB_EXTRACT - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException: 
2017/10/26 14:55:12 - JOB_EXTRACT - Error occurred while trying to connect to the database
2017/10/26 14:55:12 - JOB_EXTRACT - 
2017/10/26 14:55:12 - JOB_EXTRACT - Error connecting to database: (using class org.gjt.mm.mysql.Driver)
2017/10/26 14:55:12 - JOB_EXTRACT - Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "${BI_SERVER.PORT}"'.
2017/10/26 14:55:12 - JOB_EXTRACT - 
2017/10/26 14:55:12 - JOB_EXTRACT - 
2017/10/26 14:55:12 - JOB_EXTRACT -     at org.pentaho.di.core.database.Database.normalConnect(Database.java:459)
2017/10/26 14:55:12 - JOB_EXTRACT -     at org.pentaho.di.core.database.Database.connect(Database.java:357)
2017/10/26 14:55:12 - JOB_EXTRACT -     at org.pentaho.di.core.database.Database.connect(Database.java:328)
2017/10/26 14:55:12 - JOB_EXTRACT -     at org.pentaho.di.core.database.Database.connect(Database.java:318)
2017/10/26 14:55:12 - JOB_EXTRACT -     at org.pentaho.di.job.Job.beginProcessing(Job.java:1027)
2017/10/26 14:55:12 - JOB_EXTRACT -     at org.pentaho.di.job.Job.execute(Job.java:520)
2017/10/26 14:55:12 - JOB_EXTRACT -     at org.pentaho.di.job.Job.run(Job.java:435)
2017/10/26 14:55:12 - JOB_EXTRACT - Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
2017/10/26 14:55:12 - JOB_EXTRACT - Error connecting to database: (using class org.gjt.mm.mysql.Driver)
2017/10/26 14:55:12 - JOB_EXTRACT - Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "${BI_SERVER.PORT}"'.
2017/10/26 14:55:12 - JOB_EXTRACT - 
2017/10/26 14:55:12 - JOB_EXTRACT -     at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:572)
2017/10/26 14:55:12 - JOB_EXTRACT -     at org.pentaho.di.core.database.Database.normalConnect(Database.java:443)
2017/10/26 14:55:12 - JOB_EXTRACT -     ... 6 more
2017/10/26 14:55:12 - JOB_EXTRACT - Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "${BI_SERVER.PORT}"'.
2017/10/26 14:55:12 - JOB_EXTRACT -     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2017/10/26 14:55:12 - JOB_EXTRACT -     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
2017/10/26 14:55:12 - JOB_EXTRACT -     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
2017/10/26 14:55:12 - JOB_EXTRACT -     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
2017/10/26 14:55:12 - JOB_EXTRACT -     at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
2017/10/26 14:55:12 - JOB_EXTRACT -     at com.mysql.jdbc.Util.getInstance(Util.java:360)
2017/10/26 14:55:12 - JOB_EXTRACT -     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
2017/10/26 14:55:12 - JOB_EXTRACT -     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:935)
2017/10/26 14:55:12 - JOB_EXTRACT -     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:924)
2017/10/26 14:55:12 - JOB_EXTRACT -     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:870)
2017/10/26 14:55:12 - JOB_EXTRACT -     at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:333)
2017/10/26 14:55:12 - JOB_EXTRACT -     at java.sql.DriverManager.getConnection(DriverManager.java:664)
2017/10/26 14:55:12 - JOB_EXTRACT -     at java.sql.DriverManager.getConnection(DriverManager.java:247)
2017/10/26 14:55:12 - JOB_EXTRACT -     at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:554)
2017/10/26 14:55:12 - JOB_EXTRACT -     ... 7 more
2017/10/26 14:55:12 - JOB_EXTRACT - Caused by: java.lang.NumberFormatException: For input string: "${BI_SERVER.PORT}"
2017/10/26 14:55:12 - JOB_EXTRACT -     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
2017/10/26 14:55:12 - JOB_EXTRACT -     at java.lang.Integer.parseInt(Integer.java:569)
2017/10/26 14:55:12 - JOB_EXTRACT -     at java.lang.Integer.parseInt(Integer.java:615)
2017/10/26 14:55:12 - JOB_EXTRACT -     at com.mysql.jdbc.NonRegisteringDriver.port(NonRegisteringDriver.java:822)
2017/10/26 14:55:12 - JOB_EXTRACT -     at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
2017/10/26 14:55:12 - JOB_EXTRACT -     ... 10 more
2017/10/26 14:55:12 - Kitchen - Finished!
2017/10/26 14:55:12 - Kitchen - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : Finished with errors
2017/10/26 14:55:12 - Kitchen - Start=2017/10/26 14:55:01.379, Stop=2017/10/26 14:55:12.875
2017/10/26 14:55:12 - Kitchen - Processing ended after 11 seconds.
Finished: SUCCESS

${BI_SERVER.PORT} переменная, которую я определил на моем kettle.properties файл, так что моя интуиция говорит мне, что Jenkins не загружает этот файл, когда он запускает кухню (но он автоматически загружается, когда я запускаю его с помощью Crontab).

Любые идеи о том, как я могу это исправить? Я проверил несколько блогов Дженкинс и Пентахо, как это:

https://anonymousbi.wordpress.com/2014/09/17/pentaho-data-integration-scheduling-with-jenkins/

Но в примерах не используются переменные Pentaho, поэтому они не относятся ко мне.

1 ответ

Решение

Ошибка возникает, когда Jenkins устанавливается под учетной записью root, поскольку он пытается перезаписать файлы как пользователь jenkins. Чтобы избежать этого, либо выполните установку под новым пользователем, либо измените владельца корневых файлов на jenkins (не рекомендуется из-за проблем безопасности).

Также переместите файл kettle.properties в дом Дженкинса ($JENKINS_HOME/.kettle).

Другие вопросы по тегам