[英]MongoDB and Apache Mahout Connection Error
嘗試將Apache Mahout連接到Mongo數據庫。 但是,當我運行它時,出現以下錯誤。 不知道怎么了。 我還確保MongoClient庫連接。
錯誤:
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>
我既不是Mahout也不是Java的專家。 但是錯誤消息的確看起來像您使用的是MongoDB Java驅動程序的不兼容版本。
請注意,MongoDB Java驅動程序有2個分支:
3.x分支不向后兼容。 例如,將諸如ensureIndex
類的方法更改為createIndex
。 還有很多其他變化。 回到您的問題,我想您應該嘗試使用最新的2.x分支,即目前的2.14。
要檢查Java驅動程序和MongoDB版本之間的兼容性,請閱讀文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.