2016-11-09 2 views
0

Apache MahoutをMongo DBに接続しようとしています。しかし、私はそれを実行すると、私は次のエラーが発生します。何が間違っているか確かめないでください。また、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

私はMahoutのもジャワのない専門家です。しかし、互換性のないバージョンのMongoDB Java Driverを使用しているようなエラーメッセージが表示されます。 MongoDBのJavaドライバの2つの支店があること

注:

  1. 2.xが前から古いドライバを維持します。
  2. 非同期および新しいMongoDB機能をサポートするために、3.xブランチがあります。

3.xブランチは下位互換性がありません。 ensureIndexのようなメソッドは、たとえばcreateIndexに変更されます。他にもたくさんの変更があります。 あなたの質問に戻ると、私は今、2.14である最新の2.xブランチを試してみるべきだと思います。

JavaドライバとMongoDBのバージョンの互換性を確認するには、documentを参照してください。