Hive運行原理--JOIN

對於 JOIN 操做:spa

INSERT OVERWRITE TABLE pv_usersblog

SELECT pv.pageid, u.age FROM page_view pv JOIN user u ON (pv.userid = u.userid);排序

實現過程爲:ci

  • Map:
    • 以 JOIN ON 條件中的列做爲 Key,若是有多個列,則 Key 是這些列的組合
    • 以 JOIN 以後所關心的列做爲 Value,當有多個列時,Value 是這些列的組合。在 Value 中還會包含表的 Tag 信息,用於標明此 Value 對應於哪一個表。
    • 按照 Key 進行排序。
  • Shuffle:
    • 根據 Key 的值進行 Hash,並將 Key/Value 對按照 Hash 值推至不一樣對 Reduce 中。
  • Reduce:
    • Reducer 根據 Key 值進行 Join 操做,而且經過 Tag 來識別不一樣的表中的數據。

具體實現過程如圖: table

 

相關文章
相關標籤/搜索