2012-02-07 74 views
0

我有一套mapreduce作業,需要從我的Java程序執行。現在我通過一個Java進程調用在沒有安裝mongo的機器上執行Mongo mapreduce作業

$MONGO_HOME/bin/mongo host:port/database jsFiles 

執行它們有沒有一種方法,我可以不具有蒙戈一臺機器上執行這些MapReduce的TAKS。 mongo Java驅動程序是否支持這種功能?

謝謝!

回答

2

MongoDB的MapReduce作業是總是蒙戈服務器上來看,從來沒有在客戶端,任何客戶端可以將作業發送到服務器。

@Chris Shain指向你的文檔(http://api.mongodb.org/java/current/com/mongodb/MapReduceCommand.html),並且我建議你閱讀它們,但也要明白大部分MapReduce操作將全部約爲將存儲在您的數據庫中的大量數據減小到到更小的結果集。越接近實際存儲數據的位置,越好,大多數人不直接在服務器上執行命令。爲了使MapReduce操作有用,Mongo必須(並且確實!)提供了一種從客戶端使用它的方法。有關一般策略,請參閱此處:http://www.mongodb.org/display/DOCS/MapReduce

請注意,由於該操作在服務器上運行,因此您可能會注意到鎖定百分比增加。考慮在從屬或輔助Mongo實例上運行MapReduce作業(如果這對您而言是個問題)。