2015-02-12 23 views
0

每當我從命令行運行我的提取操作時,都會收到此錯誤,而不是在勺子UI中。在水壺上加載轉換時發現缺少插件

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> 

我是否缺少任何東西?

+0

in cassandra(cassandrainput step)他們是PDI 5.1中的一個問題,所以不確定這樣的問題是不是他們在mongodb中。 – 2015-02-12 08:31:36

+0

@WorkingHard ..對此提出的解決方案是什麼? – user962206 2015-02-12 08:34:18

+0

更改PDI版本,使用任何其他版本。我不確定mongo的情況,但是在cassandra中,你必須避免使用這個版本。 – 2015-02-12 08:36:14

回答

1

將MongoDB插件作爲依賴項僅適用於編譯。當PDI運行時,它會查找當前目錄下的插件/文件夾,並將從那裏加載所有插件。您可以通過設置KETTLE_PLUGIN_BASE_FOLDERS系統屬性來覆蓋該位置。無論哪種方式,您都需要一個插件/文件夾,並將MongoDB插件包(而不是JAR)解壓縮到插件/中。這應該將一個名爲pentaho-mongodb-plugin的文件夾放在plugins /下,如果PDI指向該插件/文件夾,它應該在運行時成功加載並使用該插件。

+0

沒有其他辦法嗎?一個Web應用程序正在運行整個轉換。 Web應用程序依賴關係由maven指定。無論如何,這是否有變革的趨勢? – user962206 2015-02-12 23:25:02

+0

相反,mavenized轉換依賴關係。 – user962206 2015-02-13 01:46:58

1

您必須從Kettle安裝目錄運行Kitchen。
至於這裏寫的: http://wiki.pentaho.com/display/EAI/Kitchen+User+Documentation

請確保您正在運行下面的樣品之前定位在水壺目錄 。如果你把這些腳本到 批處理文件或shell腳本,只需做一個改變目錄到 安裝目錄

+0

有沒有辦法使整個過程變成現實? – user962206 2015-02-24 01:43:10

+1

非常好幫助非常感謝。如果你不使用插件,你可以運行廚房。sh,但是隻要你使用插件,你必須先將光盤放入廚房文件夾。誰知道! – Codek 2015-03-26 12:31:06

3

初始化kettleEnviroment前

KettleEnviroment.init(); 

你應該加入這樣的代碼像

StepPluginType.getInstance().getPluginFolders().add(new PluginFolder("your plugins path", false, true)); 
0

只需編輯spoon.sh並添加

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

緊跟在OPT變量設置的行之後。

這實際上是mattyb的解決方案。編輯spoon.sh將解決問題。

另一種解決方案是在$ {KETTLE_HOME} /。kettle目錄中創建一個指向plugins文件夾的符號鏈接。