2012-07-19 50 views
2

好吧,這聽起來很愚蠢,我對這個東西很陌生。但這是我的困境。我在couchdb中有非常大量的數據,但是我最近發現沙發中的mapreduce函數有多殘缺(無鏈接)。使用hadoop + mapreduce處理couchdb中的數據

所以我有這種想法,使用hadoop從couchdb數據庫運行map reduce查詢,並希望將最終結果存儲在另一個couchdb數據庫中?

這太瘋狂了嗎?我知道我可以設置hbase來做到這一點,但我不想將我的數據從couchdb遷移到hbase。我喜歡沙發作爲數據存儲。

在此先感謝!

回答

0

顯然CouchDB應該能夠流數據到Hadoop via Sqoop,但我沒有看到任何其他信息,但該鏈接。最糟糕的情況是,您可以編寫自己的輸入閱讀器以從CouchDB讀取數據,或定期導出數據並將其放到HDFS上並從此處運行。

+0

我認爲這只是爲了couchbase ...還有後者會有效嗎? – 2012-07-19 19:02:17

+0

沒有線索,從未使用過couchbase。對於後者,它應該是有效的,你只是從couchbase中導出數據並將其扔到HDFS上,然後從那裏運行任何正常的Hadoop MapReduce。 – Drizzt321 2012-07-20 16:44:13

0

CouchDB中的MapReduce函數受限於簡化結果的緩存。視圖被設計爲獨立的,而不是搜索受到變化影響的視圖。

這意味着如果你有複雜的MapReduce代碼,你可以使用像CouchApp這樣的工具在MapReduce函數中嵌入函數。我無法找到此參考資料,但您需要使用宏!code將JavaScript函數嵌入到視圖中。 Using require() or // !json, !code in CouchDB?

這可以幫助您獲得鏈接無需鏈接的部分生產力優勢,將大部分代碼放在共享函數中,並僅在不同視圖中調用該函數。爲了提高鏈接的性能,如果這就是你所追求的目標,那麼轉向HBase可能會更好。

+0

問題是我已經收集了大量的數據,我現在才意識到如何製作出couchdb map減少執行系統。我正在考慮遷移到couchbase,但他們不允許從沙發上輕鬆遷移過程。 – 2012-07-19 19:01:32

相關問題