MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Odczytywanie ogromnej kolekcji MongoDB ze Sparka przy pomocy Workera

Istnieją dwa sposoby na pobranie danych z MongoDB do Apache Spark.

Metoda 1:Korzystanie z Casbah (warstwa sterownika Java MongDB)

val uriRemote = MongoClientURI("mongodb://RemoteURL:27017/")
val mongoClientRemote =  MongoClient(uriRemote)
val dbRemote = mongoClientRemote("dbName")
val collectionRemote = dbRemote("collectionName")
val ipMongo = collectionRemote.find
val ipRDD = sc.makeRDD(ipMongo.toList)
ipRDD.saveAsTextFile("hdfs://path/to/hdfs")

Tutaj używamy Scali i Casbah, aby najpierw pobrać dane, a następnie zapisać je w HDFS.

Metoda 2:Spark Worker do naszego użytku

Lepsza wersja kodu:Korzystanie z narzędzia Spark i wielu rdzeni do użycia w celu uzyskania danych w krótkim czasie.

val config = new Configuration()
config.set("mongo.job.input.format","com.mongodb.hadoop.MongoInputFormat")
config.set("mongo.input.uri", "mongodb://RemoteURL:27017/dbName.collectionName")
val keyClassName = classOf[Object]
val valueClassName = classOf[BSONObject]
val inputFormatClassName = classOf[com.mongodb.hadoop.MongoInputFormat]
val ipRDD = sc.newAPIHadoopRDD(config,inputFormatClassName,keyClassName,valueClassName)
ipRDD.saveAsTextFile("hdfs://path/to/hdfs") 



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zapisywanie do MongoDB w pętli

  2. Funkcje MongoDB w ClusterControl 1.4

  3. Zapytanie o sumę MongoDb

  4. MongoDB, Mongoose:Jak znaleźć poddokument w znalezionym dokumencie?

  5. Konfigurowanie zestawu replik MongoDB