1
votes

I am new to Pentaho. I am trying to read data from MongoDB using Pentaho Data Integration Community Edition. While trying to execute the MongoDB input step, I am getting the authentication failed error. I found that, the error was due to the missing MongoDb driver in PDI.

Later, I have downloaded the mongodb-driver-3.2.2.jar file and added it to the location E:\pdi-ce-6.0.1.0-386\data-integration\lib. But still the problem persists.

While trying to get the Dbs by providing the MongoDb connection details in Pentaho MongoDb Input step, I am getting the error java.nullpointerException.

Could someone please let me know what am I doing wrong here?

Error message while trying to get DBs by providing valid Mongo Server details in Spoon:

Unable to connect to MongoDB - check connection details : 'ok' should never be null...

Error Details and the stacktrace of a possibly exception:

org.pentaho.di.core.exception.KettleException: 
java.lang.IllegalArgumentException: 'ok' should never be null...
'ok' should never be null...

    at org.pentaho.mongo.wrapper.NoAuthMongoClientWrapper.getDatabaseNames(NoAuthMongoClientWrapper.java:358)
    at org.pentaho.di.ui.trans.steps.mongodbinput.MongoDbInputDialog.setupDBNames(MongoDbInputDialog.java:1442)
    at org.pentaho.di.ui.trans.steps.mongodbinput.MongoDbInputDialog.access$300(MongoDbInputDialog.java:82)
    at org.pentaho.di.ui.trans.steps.mongodbinput.MongoDbInputDialog$4.widgetSelected(MongoDbInputDialog.java:450)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at org.pentaho.di.ui.trans.steps.mongodbinput.MongoDbInputDialog.open(MongoDbInputDialog.java:1079)
    at org.pentaho.di.ui.spoon.delegates.SpoonStepsDelegate.editStep(SpoonStepsDelegate.java:124)
    at org.pentaho.di.ui.spoon.Spoon.editStep(Spoon.java:8797)
    at org.pentaho.di.ui.spoon.trans.TransGraph.editStep(TransGraph.java:3027)
    at org.pentaho.di.ui.spoon.trans.TransGraph.mouseDoubleClick(TransGraph.java:744)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1316)
    at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7979)
    at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9310)
    at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:654)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)
Caused by: java.lang.IllegalArgumentException: 'ok' should never be null...
    at com.mongodb.CommandResult.ok(CommandResult.java:43)
    at com.mongodb.CommandResult.throwOnError(CommandResult.java:109)
    at com.mongodb.DBPort$NativeAuthenticator.authenticate(DBPort.java:545)
    at com.mongodb.DBPort.authenticate(DBPort.java:322)
    at com.mongodb.DBPort.checkAuth(DBPort.java:333)
    at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:243)
    at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:216)
    at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:288)
    at com.mongodb.DB.command(DB.java:261)
    at com.mongodb.DB.command(DB.java:243)
    at com.mongodb.DB.command(DB.java:300)
    at com.mongodb.Mongo.getDatabaseNames(Mongo.java:384)
    at org.pentaho.mongo.wrapper.NoAuthMongoClientWrapper.getDatabaseNames(NoAuthMongoClientWrapper.java:353)
3
Is your mongodb database located on another server ?maximilienAndile
yes.. MongoDB is hosted in another active server.Aarthi Priyadharshini
Which version of PDI do you use ?maximilienAndile
Can you give the error message ?maximilienAndile
@maximilienAndile.Please find the error message details in the above updated post. Also PDI version is 6.0.1.0-386Aarthi Priyadharshini

3 Answers

2
votes

In MongoDB input step, configuring connection with just server host name, without specifying username and password, resolves the issue.. !!

0
votes

Hi Aarthi Priyadharshini - to get this done, I found a link here that shows you exactly what to do - http://wiki.pentaho.com/display/BAD/Read+Data+From+MongoDB

Since MongoDB is a Big Data platform, it is found under the big data options in the Design view. Watch the video on the link to learn exactly how to use.

0
votes

i solve my problem downloading the last versions of PDI

http://ci.pentaho.com/view/Data%20Integration/job/Kettle/

Contains auth with mongo 3.2.2 and works!

Is not for production enviroments!