2012-04-23 58 views
0

我必須處理大量的數據。我希望使用分佈式計算(可擴展)來處理它。 我從apache Solr.On獲取數據通過一個特定的輸入,我從apache solr獲取一個巨大的數據集。對於這個數據集中的每個記錄,我會將主鍵傳遞給REST api以獲取一些將附加到記錄的信息然後每條記錄都會進行一些更新。最終巨集合中的每個更新對象將被寫爲單獨的xml文件到一個文件夾中。用於處理來自Apache solr的數據的Hadoop

適用於這種特殊情況的Hadoop?。我已經看到了在Hadoop中的MapReduce的單詞計數樣品documentation.I試圖在該地圖的地圖發出減少2個節點將是一個類似的方式去思考我的處境

Node1 - Map<InputIdToSolr1,Set<RecordsFromSolr1to500>> 
Node2 - Map<InputIdToSolr1,Set<RecordsFromSolr500to1000>> 

然後這個結果將通過hadoop中的reduce函數進行組合。不同於wordcount,我的節點在每個節點的map中只有一個元素。我不確定使用hadoop是否有意義。 什麼是我可以用來擴展記錄處理的其他選項/開源java項目。我從春天就看到了Terracotta,但它似乎是一個商業應用程序。

+0

我看不出爲什麼它不起作用的理由。我正在研究一個類似的場景,並從REST基礎服務中獲取結果並將其傳遞給Hadoop – allthenutsandbolts 2012-04-23 18:23:34

+0

我可以說它不起作用。我只是在開始之前分析一切。可以告訴我,如果我在這種情況下使用hadoop的方法是正確/不是 – aruns 2012-04-24 02:56:12

回答

0

不知道您正在尋找的可伸縮性的規模,但我會先在多核盒子上嘗試多線程解決方案。

如果性能與預期不符,並且您可以靈活地獲取應用程序的更多硬件和實例,那麼您可能會開始考慮使用Map-Reduce解決方案。

Terracota不是來自Spring/SpringSource/VMWare,雖然它是專有和商業的。

0

您是否考慮過使用NoSQL數據庫? 決定使用哪一個取決於數據的形狀。 檢查出來(全部開源):

More about NoSQL databases.

編輯:
我剛從Couchbase和Cloudera的(Hadoop的解決方案&支持公司),他們要討論的NoSQL + Hadoop的使用偶然this webinar

+0

我已經在使用mongodb.It沒有獲取我擔心的數據。我關心的是處理從mongodb中獲取的數百萬條記錄 – aruns 2012-04-24 13:24:13

+0

因此,您的數據已經在Mongo及其[Aggregation Framework](http:///www.mongodb.org/display/DOCS/Aggregation+Framework)和[MongoDb的MapReduce](http://www.mongodb.org/display/DOCS/MapReduce)是不是有足夠的理由? – 2012-04-24 13:43:42

+0

是的。我在處理每條記錄時還有其他一些事情要做 – aruns 2012-04-24 14:06:41

0

這個任務聽起來很適合Hadoop的MapReduce。 除此之外 - Lucene和Hadoop是由同一個人Doug Cutting創建的。 在您的情況下,您可以考慮不同級別的集成。最簡單的一個將把你的數據集放到HDFS中,然後選擇/寫入適合你數據格式的輸入格式,並在Mapper中使你的REST調用完成記錄。
如果您有很多不同的但相對簡單的處理,我會建議考慮將數據表示爲Hive表 - 或者從HDFS或SOLR中。
我並不熟悉SOLR架構,但是,如果您將apache nutch與SOLR一起使用 - 您可能已將hadoop集成到其中並可以使用它。