五月天堂网_免费看影片_1024手机看毛片_亚洲综合四区_男人的天堂影院_在线亚洲自拍

中培偉業IT資訊頻道
您現在的位置:首頁 > IT資訊 > 數據庫 > 闡述Hadoop實現join的三種方法

闡述Hadoop實現join的三種方法

2021-04-21 16:32:08 | 來源:中培企業IT培訓網

Hadoop實現join的三種方法是什么呢?我們先來說說Hadoop,它是一個由Apache基金會所開發的分布式系統基礎架構。在用戶并不了解分布式底層細節的情況下也可以開發分布式程序。它充分利用集群的威力進行高速運算及存儲。Hadoop它其實實現了一個分布式文件系統,它的框架最核心的設計就是:MapReduce,HDFS。HDFS是為海量的數據提供了存儲空間,而MapReduce就是為海量數據提供了運算。要知道只有當線程結束時,join方法才可以繼續執行相關語句。我們來現在來說說Hadoop實現join的三種方法。

闡述Hadoop實現join的三種方法

第一種:reduce side join

Reducesidejoin是最簡單的連接方式,其主要思想如下:

在映射階段,映射函數同時讀取兩個文件文件1和文件2,為了區分來自兩個源的鍵/值數據對,每個數據都被標記。例如,標記=0表示來自文件文件1,標記=2表示來自文件文件2,即地圖階段的主要任務是標注不同文件中的數據。

在reduce階段,reduce函數從具有相同鍵的File1和File2文件中獲取valuelist,然后將File1和File2中的數據連接到相同的鍵。也就是說,實際的連接操作在減少階段執行。

第二種:map side join

reducesidejoin之所以存在,是因為在映射階段無法獲得所有必要的連接字段,也就是說,相同關鍵詞對應的字段可能在不同的映射中。Reducesidejoin效率不高,因為在洗牌階段有大量的數據傳輸。

Mapsidejoin優化了以下幾個場景:要連接的兩個表中有一個很大,另一個很小,小表可以直接存儲在內存中。這樣,我們就可以在每個maptask內存中制作一個副本(例如存儲在hashtable中),然后只掃描大表:對于大表中的每個記錄鍵/值,找出hashtable中是否有相同的鍵記錄,如果有,連接后輸出。

第三種:SemiJoin

SemiJoin,也稱為半連接,是從分布式數據庫中借用的一種方法。其動機是:對于reducesidejoin,跨機器的數據傳輸量非常大,已經成為join操作的瓶頸。如果能在地圖端過濾掉不參與加入操作的數據,可以大大節省網絡IO。

實現方法很簡單:選擇一個小表,假設是File1.提取它的鍵進行聯接,保存在File3中,文件3通常很小,可以放在內存中。在映射階段,使用分布式緩存將文件3復制到每個任務跟蹤器,然后過濾掉文件2中不在文件3中的鍵對應的記錄。reduce階段的其余工作與reducesidejoin相同。

Mapjoin是把一個數據集的數據放入mapset,在setup中把該集放入緩存,所以涉及到DistributedCache,因為涉及到內存,所以放入緩存的數據集樣本要小,否則不適用,所以這個業務場景比較少。在reduce的連接中,所有需要連接的數據集都作為map的輸入,數據在map的邏輯中標記,數據在reduce中合并,需要用戶自定義數據類型。

以上我們介紹了Hadoop實現join的三種方法,希望能夠對大家有一定的幫助,如果您想繼續了解相關內容,請您繼續關注中培偉業。

標簽: hadoop SemiJoin
主站蜘蛛池模板: 亚洲欧洲自拍拍偷无码 | 日韩人体视频 | 天天综合久久网 | 91麻豆精品国产91久久久久久久久 | 亚洲最新不卡一区二区三区 | 天天爽天天爽天天爽 | 国产在线区 | 免费看的国产视频网站 | 中文字幕 日韩av | 国产亚洲一区二区不卡 | 国产91在线播放精品 | 超喷在线| 爱弓凉在线视频一区二区 | 国产嫩草在线视频 | 欧美xxxxzzzz| av手机版在线观看 | 国产艳遇久久久久久久精品电影 | 欧美一道本一区二区三区 | 无套内谢孕妇毛片免费看 | av激情| av成人免费在线看 | 嫩草网站在线观看 | 夜夜躁很很躁日日躁2020 | 91精品国产综合久久久蜜臀九色 | 美女性高潮视频 | 狠狠操夜夜操天天操 | 日韩网站黄 | 狠狠操综合 | 公在厨房扒开腿让我爽了在线观看 | 天堂av在线播放 | avq在线播放 | 一二区成人影院电影网 | 亚洲国产欧美在线成人AAAA | 欧洲黄色级黄色99片 | 日韩大片高清播放器 | 成年人一区二区三区 | 九七午夜剧场福利写真 | 国产精品麻豆视频国产馆 | 亚洲AV综合A∨一区二区 | 欧美又大又粗AAA片免费看 | 91精品国产乱码久久久 |