2016-11-09 95 views
0

嘗試將Apache Mahout連接到Mongo數據庫。但是,當我運行它時,我得到以下錯誤。不知道什麼是錯的。我也確保MongoClient Library連接。MongoDB和Apache Mahout連接錯誤

錯誤:

java.lang.NoSuchMethodError: com.mongodb.DBCollection.ensureIndex(Lcom/mongodb/DBObject;)V 

    at org.apache.mahout.cf.taste.impl.model.mongodb.MongoDBDataModel.buildModel(MongoDBDataModel.java:559) 
    at org.apache.mahout.cf.taste.impl.model.mongodb.MongoDBDataModel.<init>(MongoDBDataModel.java:243) 
    at util.Connection.connectToServer(Connection.java:23) 

方法:

public MongoDatabase connectToServer() throws MongoSocketException, UnknownHostException { 


     //Working 
     MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017"); 

      MongoClient mongoDB = new MongoClient(uri); 
      MongoDatabase mongoConnection = mongoDB.getDatabase("loka"); 

     //Throws Error 
      MongoDBDataModel dbm = new MongoDBDataModel("127.0.0.1",27017,"loka","BEACON_LOOKUP",true,false,null); 

      return mongoConnection; 
    } 

POM依賴關係:

<dependency> 
      <groupId>org.mongodb</groupId> 
      <artifactId>mongodb-driver</artifactId> 
      <version>3.0.4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.mahout</groupId> 
      <artifactId>mahout-core</artifactId> 
      <version>0.9</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.mahout</groupId> 
      <artifactId>mahout-math</artifactId> 
      <version>0.12.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.mahout</groupId> 
      <artifactId>mahout-collections</artifactId> 
      <version>1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.mahout</groupId> 
      <artifactId>mahout-integration</artifactId> 
      <version>0.12.2</version> 
     </dependency> 

回答

1

我沒有亨利馬烏還是Java的專家。但是,錯誤消息看起來像您正在使用MongoDB Java驅動程序的不兼容版本。

注意,有MongoDB的Java驅動程序的2個分支:

  1. 2.X從之前保持的老司機。
  2. 爲了支持異步和新的MongoDB功能,有3.x分支。

3.x分支不向後兼容。例如,ensureIndex等方法更改爲createIndex。還有一堆其他的變化。 所以回到你的問題,我認爲你應該嘗試最新的2.x分支,現在是2.14。

要檢查Java驅動程序和MongoDB版本之間的兼容性,請閱讀document