9 17 高階hive 理論知識

2021-08-08 09:44:22 字數 1397 閱讀 6925

explain select city_code,count(1) as cnt from user where access=』wifi』 group by city_code order by cnt desc limit 5;

在sql語句前新增explain 檢視實行流程

mr job的基本過程

input—combiner—-shuffle—-output

map自帶的buffer使用容量達到一定限制(預設0.80或80%,可以通過io.sort.spill.percent配置),乙個後台執行緒會準備將buffer中的資料寫入到磁碟。

這個後台執行緒在將buffer中資料寫入磁碟之前,會首先將buffer中的資料進行partition(分割槽,partition數為reducer的個數),對於每個的資料會基於key進行乙個in-memory排序。

排序後,會檢查是否配置了combiner,如果配置了則直接作用到已排序的每個partition的資料上,對map輸出進行化簡壓縮(這樣寫入磁碟的資料量就會減少,降低i/o操作開銷)。

現在可以將經過處理的buffer中的資料寫入磁碟,生成乙個檔案(每次buffer容量達到設定的門限,都會對應著乙個寫入到磁碟的檔案)。

map任務結束之前,會對輸出的多個檔案進行合併操作,合併成乙個檔案

reduce階段,每個reduce任務開始從多個map上拷貝屬於自己partition

每個reduce任務拷貝的map任務結果的指定partition,也是先將資料放入到自帶的乙個buffer中,如果配置了map結果進行壓縮,則這時要先將資料解壓縮後放入buffer中。

reduce自帶的buffer使用容量達到一定門限(預設0.66或66%,可以通過mapred.job.shuffle.merge.percent配置),或者buffer中存放的map的輸出的數量達到一定門限(預設1000,可以通過mapred.inmem.merge.threshold配置),buffer中的資料將會被寫入到磁碟中。

在將buffer中多個map輸出合併寫入磁碟之前,如果設定了combiner,則會化簡壓縮合併的map輸出。

當屬於該reducer的map輸出全部拷貝完成,則會在reducer上生成多個檔案,這時開始執行合併操作,並保持每個map輸出資料中key的有序性,將多個檔案合併成乙個檔案(在reduce端可能存在buffer和磁碟上都有資料的情況,這樣在buffer中的資料可以減少一定量的i/o寫入操作開銷)。

最後,執行reduce階段,執行我們實現的reducer中化簡邏輯,最終將結果直接輸出到hdfs中(因為reducer執行在datanode上,輸出結果的第乙個replica直接在儲存在本地節點上)。

在 hive 中,表中的乙個 partition 對應於表下的乙個目錄,所有的 partition 的資料都儲存在對應的目錄中。使用者在載入資料的時候必須顯示的指定該部分資料放到哪個分割槽。

機器學習高階理論知識列表

個人學習收藏,侵刪 知識列表選自貪心科技的 機器學習高階訓練營 第5期的宣傳廣告,課程內容相比往期有大幅更新,一方面新增了對前沿主題的講解如圖神經網路 gcn,gat等 另外一方面對核心部分 如凸優化 強化學習 加大了對理論層面上的深度。除此之外,也會包含科研方 元學習 解釋性 fair learn...

web services理論知識

web服務作為一種能夠快速整合應用的技術,如果與非同步傳輸進行組合,就將為構建企業級應用提供所需的可靠性。在本文中,我們嘗試用兩種設計方法來部署和訪問非同步web服務 通過使用 apache axis 在第一種方法中,用websphere mq support pac ma0r來提供mq傳輸 利用w...

理論知識總結

軟體定義 程式 資料結構 文件。軟體危機 落後的軟體生產方式無法滿足迅速增長的計算機軟體要求,從而導 致軟體開發與維護過程中出現的問題。軟體工程 方法 工具 過程。軟體生命週期模型 瀑布模型,v模型,迭代模型。軟體測試是對軟體需求分析 設計 編碼的最終複查的一系列過程,是軟體質量保證的關鍵步驟 目的...