Отсутствующие плагины обнаружены при загрузке преобразования в Kettle

Я получаю эту ошибку всякий раз, когда запускаю извлечение из командной строки, а не в пользовательском интерфейсе Spoon.

Missing plugins found while loading a transformation

Step : MongoDbInput

        at org.pentaho.di.job.entries.trans.JobEntryTrans.getTransMeta(JobEntryTrans.java:1200)
        at org.pentaho.di.job.entries.trans.JobEntryTrans.execute(JobEntryTrans.java:643)
        at org.pentaho.di.job.Job.execute(Job.java:714)
        at org.pentaho.di.job.Job.execute(Job.java:856)
        ... 4 more
Caused by: org.pentaho.di.core.exception.KettleMissingPluginsException:
Missing plugins found while loading a transformation

Мои зависимости от maven следующие.

    <dependency>
      <groupId>rhino</groupId>
      <artifactId>js</artifactId>
    </dependency>
    <dependency>
      <groupId>pentaho-kettle</groupId>
      <artifactId>kettle-core</artifactId>
    </dependency>
    <dependency>
      <groupId>pentaho-kettle</groupId>
      <artifactId>kettle-engine</artifactId>
    </dependency>
    <dependency>
      <groupId>pentaho-library</groupId>
      <artifactId>libbase</artifactId>
      <version>5.1.0.0-752</version>
    </dependency>
    <dependency>
      <groupId>pentaho</groupId>
      <artifactId>pentaho-big-data-plugin</artifactId>
      <version>5.1.0.0-751</version>
    </dependency>
    <dependency>
      <groupId>pentaho</groupId>
      <artifactId>pentaho-mongodb-plugin</artifactId>
      <version>5.1.0.0-751</version>
    </dependency>
    <dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongo-java-driver</artifactId>
      <version>2.11.1</version>
    </dependency>
    <dependency>
      <groupId>pentaho</groupId>
      <artifactId>metastore</artifactId>
      <version>5.1.0.0-751</version>
    </dependency>
    <dependency>
      <groupId>pentaho-library</groupId>
      <artifactId>libformula</artifactId>
    </dependency>
    <dependency>
      <groupId>simple-jndi</groupId>
      <artifactId>simple-jndi</artifactId>
    </dependency>
    <dependency>
      <groupId>org.drools</groupId>
      <artifactId>drools-compiler</artifactId>
    </dependency>
    <dependency>
      <groupId>org.drools</groupId>
      <artifactId>drools-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
    </dependency>
  </dependencies>

Я что-то упустил?


person user962206    schedule 12.02.2015    source источник
comment
в cassandra (шаг cassandrainput) это проблема в PDI 5.1, поэтому не уверен, что такая проблема есть и в mongodb или нет.   -  person Helping Hand..    schedule 12.02.2015
comment
@WorkingHard .. какое решение предлагается для этого?   -  person user962206    schedule 12.02.2015
comment
измените версию PDI, используйте любую другую версию. Я не уверен в случае с монго, но в кассандре вам следует избегать этой версии.   -  person Helping Hand..    schedule 12.02.2015
comment
@WorkingHard .. значит ли это, что мне нужно изменить всю версию чайника? до 5.2?   -  person user962206    schedule 12.02.2015
comment
да можно поменять и попробовать..   -  person Helping Hand..    schedule 12.02.2015
comment
@WorkingHard.. пытался изменить все на 5.2, но все равно ошибался.   -  person user962206    schedule 12.02.2015
comment
Я столкнулся с той же проблемой, вы нашли решения?   -  person M.R. Murazza    schedule 30.08.2015


Ответы (4)


перед инициализацией чайника Окружающая среда

KettleEnviroment.init();

вы должны добавить этот код, например

StepPluginType.getInstance().getPluginFolders().add(new PluginFolder("your plugins path", false, true));
person Tmac Zhou    schedule 29.01.2016

Наличие плагина MongoDB в качестве зависимости работает только для компиляции. Когда PDI запускается, он ищет папку plugins/ в текущем каталоге и загружает оттуда все плагины. Вы можете переопределить местоположение, установив системное свойство KETTLE_PLUGIN_BASE_FOLDERS. В любом случае вам понадобится папка plugins/ и распаковать пакет плагинов MongoDB (не JAR) в plugins/. Это должно поместить папку с именем pentaho-mongodb-plugin в plugins/, и если PDI указывает на эту папку plugins/, он должен загрузить и успешно использовать плагин во время выполнения.

person mattyb    schedule 12.02.2015
comment
Неужели нет другого пути? Веб-приложение выполняет всю трансформацию. Зависимость веб-приложений определяется maven. Есть ли в любом случае, чтобы mavenized преобразование? - person user962206; 13.02.2015

Вы должны запускать Kitchen из каталога установки Kettle.
Как написано здесь: http://wiki.pentaho.com/display/EAI/Kitchen+User+Documentation

Перед запуском приведенных ниже примеров убедитесь, что вы находитесь в каталоге Kettle. Если вы поместите эти сценарии в пакетный файл или сценарий оболочки, просто измените каталог на каталог установки.

person Marlon Abeykoon    schedule 21.02.2015
comment
Нет никакого способа усовершенствовать весь процесс? - person user962206; 24.02.2015
comment
Отлично очень полезно спасибо. Если вы не используете плагины, вы можете запустить kitchen.sh из любого места, но как только вы используете плагин, вы должны сначала перейти в папку кухни. кто знал! - person Codek; 26.03.2015

Просто отредактируйте ложку.sh и добавьте

OPT="$OPT -DKETTLE_PLUGIN_BASE_FOLDERS=$BASEDIR/plugins"

сразу после строки, где установлена ​​переменная OPT.

На самом деле это решение от mattyb. Редактирование Spoon.sh навсегда решит проблему.

Другое решение — создать символическую ссылку в вашем каталоге ${KETTLE_HOME}/.kettle, которая указывает на папку плагинов.

person thehpi    schedule 18.03.2016