天天看點

Hadoop表連接配接問題

1、在Map階段連接配接

   适用情況,兩個表連接配接,一個表非常大,一個表非常小,小的表可以放進記憶體中。使用分布式緩存DistributedCache,将小表緩存到每個Map節點上,連接配接時,掃描Map中的大表分塊,判斷是否存在和小表相同的鍵,如果存在,則進行連接配接。

2、Reduce階段連接配接

  Map階段,給每個鍵值對标注來源,例如<1,"Hello">來源于a表,标記後的資料為<1,"a,hello">;<1,"OK">來源于b表,表記為<1,"a,OK">

  Reduce階段,對來自不同表,相同鍵的資料進行連接配接。

一些改進的方法:統計一個表A的所有鍵,在表B進行标記時,隻寫出在表A中存在的鍵的資料。

參考自:http://blog.csdn.net/waltonhuang/article/details/52192141

繼續閱讀