MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Четене на огромна MongoDB колекция от Spark с помощта на Worker

Има два начина за получаване на данните от MongoDB към Apache Spark.

Метод 1:Използване на Casbah (слой на MongDB Java драйвер)

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")

Тук използваме Scala и Casbah, за да получим данните първо и след това да ги запазим в HDFS.

Метод 2:Използваме Spark Worker

По-добра версия на кода:Използване на Spark worker и множество ядра за използване за получаване на данните за кратко време.

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. Мога ли да създам база данни от ruby ​​класове?

  2. mongodb задава стойност на поле с помощта на if else по време на актуализацията на документа

  3. Не може да се получи покрита заявка за шардирана колекция в MongoDB

  4. Mongo натиснете към масив вътре в масива

  5. Вземете броя на отворените връзки в mongoDB с помощта на java