一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Hive中Join的原理和機制

 jasonbetter 2018-06-04

Hive中Join的原理和機制

轉(zhuǎn)自:http:///archives/2015/06/313.htm

籠統(tǒng)的說,Hive中的Join可分為Common Join(Reduce階段完成join)和Map Join(Map階段完成join)。本文簡單介紹一下兩種join的原理和機制。

Hive Common Join

如果不指定MapJoin或者不符合MapJoin的條件,那么Hive解析器會將Join操作轉(zhuǎn)換成Common Join,即:在Reduce階段完成join.
整個過程包含Map、Shuffle、Reduce階段。

  • Map階段

讀取源表的數(shù)據(jù),Map輸出時候以Join on條件中的列為key,如果Join有多個關聯(lián)鍵,則以這些關聯(lián)鍵的組合作為key;
Map輸出的value為join之后所關心的(select或者where中需要用到的)列;同時在value中還會包含表的Tag信息,用于標明此value對應哪個表;
按照key進行排序

  • Shuffle階段

根據(jù)key的值進行hash,并將key/value按照hash值推送至不同的reduce中,這樣確保兩個表中相同的key位于同一個reduce中

  • Reduce階段
    根據(jù)key的值完成join操作,期間通過Tag來識別不同表中的數(shù)據(jù)。

以下面的HQL為例,圖解其過程:

  1. SELECT
  2. a.id,a.dept,b.age
  3. FROM a join b
  4. ON (a.id = b.id);

Hive Common Join

看了這個圖,應該知道如何使用MapReduce進行join操作了吧。

Hive Map Join

MapJoin通常用于一個很小的表和一個大表進行join的場景,具體小表有多小,由參數(shù)hive.mapjoin.smalltable.filesize來決定,該參數(shù)表示小表的總大小,默認值為25000000字節(jié),即25M。
Hive0.7之前,需要使用hint提示 /*+ mapjoin(table) */才會執(zhí)行MapJoin,否則執(zhí)行Common Join,但在0.7版本之后,默認自動會轉(zhuǎn)換Map Join,由參數(shù)hive.auto.convert.join來控制,默認為true.
仍然以9.1中的HQL來說吧,假設a表為一張大表,b為小表,并且hive.auto.convert.join=true,那么Hive在執(zhí)行時候會自動轉(zhuǎn)化為MapJoin。

Hive MapJoin

  • 如圖中的流程,首先是Task A,它是一個Local Task(在客戶端本地執(zhí)行的Task),負責掃描小表b的數(shù)據(jù),將其轉(zhuǎn)換成一個HashTable的數(shù)據(jù)結構,并寫入本地的文件中,之后將該文件加載到DistributeCache中,該HashTable的數(shù)據(jù)結構可以抽象為:
keyvalue
126
234

MapReduce Local Task

圖中紅框圈出了執(zhí)行Local Task的信息。

  • 接下來是Task B,該任務是一個沒有Reduce的MR,啟動MapTasks掃描大表a,在Map階段,根據(jù)a的每一條記錄去和DistributeCache中b表對應的HashTable關聯(lián),并直接輸出結果。
  • 由于MapJoin沒有Reduce,所以由Map直接輸出結果文件,有多少個Map Task,就有多少個結果文件。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩精品视频香蕉视频| 国产传媒欧美日韩成人精品| 人妻中文一区二区三区| 美女被草的视频在线观看| 日韩高清中文字幕亚洲| 欧美成人黄色一区二区三区| 99热在线播放免费观看| 少妇激情在线免费观看| 日本黄色高清视频久久| 免费国产成人性生活生活片| 国产精品视频一区麻豆专区 | 国产日韩精品欧美综合区| 在线观看日韩欧美综合黄片| 欧美三级精品在线观看| 国产又粗又猛又爽色噜噜| 国产欧美高清精品一区| 国产日韩中文视频一区| 亚洲熟妇熟女久久精品 | 麻豆看片麻豆免费视频| 午夜久久久精品国产精品| 国产麻豆精品福利在线| 欧美不卡一区二区在线视频| 亚洲欧美日产综合在线网| 国产性色精品福利在线观看| 国产高清一区二区不卡| 国产视频一区二区三区四区| 日本深夜福利在线播放| 91精品国产品国语在线不卡| 成人日韩视频中文字幕| 人妻偷人精品一区二区三区不卡| 欧美丝袜诱惑一区二区| 日韩中文字幕人妻精品| 日本高清视频在线观看不卡| 免费观看在线午夜视频| 99久久人妻精品免费一区| 日韩精品一区二区三区射精| 国产欧美日韩精品成人专区| 国产爆操白丝美女在线观看| 太香蕉久久国产精品视频| 91天堂免费在线观看| 真实国产乱子伦对白视频不卡|