2012-03-25 2 views

ответ

0

Вы храните файлы CSV/JSON в HDFS? Если это так, вам просто нужен способ mapping them to your filesystem, чтобы вы могли указать mongoimport в файл.

В качестве альтернативы mongoimport будет принимать данные от stdin, если не указан файл.

0

Вы можете использовать mongoimport без --file аргумента, и нагрузки от стандартного ввода:

hadoop fs -text /path/to/file/in/hdfs/*.csv | mongoimport ... 
0

Если мы говорим о большом данном я бы заглянуть в масштабируемые решения.
У нас был аналогичный случай с серьезным набором данных (несколько терабайт), сидящим в HDFS. Эти данные, хотя и с некоторой трансформацией, должны были быть загружены в Монго.
Мы разработали MapReduce Job, которые запускают данные, и каждый картограф вставляет свой раздел данных в mongodb через API.

1

Вы пробовали MongoInsertStorage?

Вы можете просто загрузить набор данных с помощью свиньи, а затем использовать MongoInsertStorage для сбрасывания непосредственно в Mongo. Он внутренне запускает кучу картографов, которые делают именно то, что упоминается в ответе Дэвида Грузмана на этой странице. Одним из преимуществ этого подхода является параллелизм и скорость, которую вы достигаете благодаря одновременному введению нескольких монстров в коллекцию Mongo.

Вот грубый срез того, что может быть сделано с свинью

REGISTER mongo-java-driver.jar 
REGISTER mongo-hadoop-core.jar 
REGISTER mongo-hadoop-pig.jar 

DEFINE MongoInsertStorage com.mongodb.hadoop.pig.MongoInsertStorage(); 

-- you need this here since multiple mappers could spawn with the same 
-- data set and write duplicate records into the collection 
SET mapreduce.reduce.speculative false 

-- or some equivalent loader 
BIG_DATA = LOAD '/the/path/to/your/data' using PigStorage('\t'); 
STORE BIG_DATA INTO 'mongodb://hostname:27017/db USING MongoInsertStorage('', ''); 

Больше информации здесь https://github.com/mongodb/mongo-hadoop/tree/master/pig#inserting-directly-into-a-mongodb-collection

+0

Можем ли мы непосредственно положить папку, содержащую в томов CSV нагрузки BIG_DATA? или нам нужно его зацикливать? – user3270763

+1

@ user3270763 нет необходимости в цикле – Nerrve

 Смежные вопросы

  • Нет связанных вопросов^_^