2013-02-14 138 views
2

嗨,我是Hadoop和NoSQL技術的新手。我開始通過讀取存儲在HDFS中的文件並進行處理來學習世界計數程序。現在我想在MongoDB中使用Hadoop。從here開始計劃。Hadoop與MongoDB概念

現在我對它存在困惑,它將mongodb數據存儲在本地文件系統中,並將本地文件系統中的數據從map/reduce讀取到HDFS,然後再將其寫入到mongodb本地文件系統。當我學習HBase時,我們可以將其配置爲將其數據存儲在HDFS上,並且hadoop可以在HDFS(map/reduce)上直接處理它。如何配置mongodb以將其數據存儲在HDFS上。

我認爲最好的方法是將數據存儲在HDFS中進行快速處理。不在本地文件系統中。我對嗎?如果我走錯了方向,請清除我的概念。

+0

雖然這可能與驅動器工作https://ccp.cloudera.com/display/ CDHDOC/Mountable + HDFS,我不明白你爲什麼要在MongoDB上引入這樣的圖層?它仍然只能在一臺機器上使用。所以,除了減慢mongo並可能破壞整個過程的穩定性之外,我不明白你爲什麼要這樣做? 10gen已經創建了一個分佈式解決方案。 – WiredPrairie 2013-02-14 11:58:56

回答

3

MongoDB是不建在HDFS之上工作,並且它並不是真正必要的,因爲Mongo已經有了自己的水平擴展和多個機器上存儲數據的方法。

如果您需要使用MongoDB和Hadoop,一種更好的方法是使用MongoDB作爲數據源,但處理Hadoop中的所有內容(將使用HDFS作爲任何臨時存儲)。完成數據處理後,您可以將其寫回到MongoDB,S3或任何您想要的地方。

我寫了一個博客貼子,進入一個小更多的細節如何,你可以用蒙戈和Hadoop在這裏工作:http://blog.mortardata.com/post/43080668046/mongodb-hadoop-why-how

3

HDFS是一個分佈式文件系統,而HBase是一個NoSQL數據庫,它使用HDFS作爲其文件系統提供與Hadoop的快速和高效的集成,並已被證明可以大規模使用。能夠直接在Hadoop中使用HBase數據或將其推送到HDFS是在選擇HBase作爲NoSQL數據庫解決方案時的最大優勢之一 - 我不相信MongoDB提供與Hadoop和HDFS的緊密集成,這可以降低任何性能和將數據從/向數據庫移動的效率問題。

請看看這個博客張貼有關MongoDB如何使用Hadoop集成了一個詳細的分析 - 的結論之一是,從MongoDB的寫入HDFS表現都不好:http://www.ikanow.com/how-well-does-mongodb-integrate-with-hadoop/