2013-04-25 71 views
0

我正在使用Hadoop並嘗試使用兩個數據集進行一些互動功能什麼是最佳方案。我可以將其中一個加載到內存中,然後與其他數據集的map函數相交,但是如果數據集對RAM內存來說太大,這不是解決方案,那麼您的想法是什麼?使用Hadoop和兩個數據集


感謝您的回答,我會試試看看最好的解決方案。

回答

0

這很難在MapRed操縱交會相比其他家庭圍繞Hadoop的API平臺。有人已經提到的蜂巢(超級容易做到的交點,如果您有SQL背景),但你也可以考慮:

  • PIG
  • Cascading(特別是協同組,如果記憶是一種關心和HashJoin如果不是)
0

分佈式緩存非常適用於小型數據集,並可以考慮高速緩存在內存中。如果數據量很大,如您所述,分佈式緩存不是一個選項。

Hadoop框架允許排序的大型數據集,但是,您可能必須遵循的步驟數,其中一項規定是,在此之前可以進行聯接輸入數據集必須進行排序。您可以考慮利用Apache Hive來實現這一點。如果蜂巢被排除了,在這個環節中提到的步驟應該可以幫助您開始爲大型數據集

Configure Map Side join for multiple mappers in Hadoop Map/Reduce