<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      HIVE源碼(1):HQL 是如何轉換為 MR 任務的

      1 Hive 的核心組成介紹

      1)用戶接口:Client
      CLI(command-line interface)、JDBC/ODBC(jdbc 訪問 hive)、WEBUI(瀏覽器訪問 hive)
      2)元數據:Metastore
      元數據包括:表名、表所屬的數據庫(默認是 default)、表的擁有者、列/分區字段、表的類型(是否是外部表)、表的數據所在目錄等;
      默認存儲在自帶的 derby 數據庫中,推薦使用 MySQL 存儲 Metastore
      3)Hadoop
      使用 HDFS 進行存儲,使用 MapReduce 進行計算。
      4)驅動器:Driver
      5)解析器(SQL Parser)
      將 SQL 字符串轉換成抽象語法樹 AST,這一步一般都用第三方工具庫完成,比如 antlr;
      對 AST 進行語法分析,比如表是否存在、字段是否存在、SQL 語義是否有誤。
      6)編譯器(Physical Plan)
      將 AST 編譯生成邏輯執行計劃。
      7)優化器(Query Optimizer)
      對邏輯執行計劃進行優化。
      8)執行器(Execution)
      把邏輯執行計劃轉換成可以運行的物理計劃。對于 Hive 來說,就是 MR/Spark。 

      2 HQL 轉換為 MR 任務流程說明

      1.進入程序,利用Antlr框架定義HQL的語法規則,對HQL完成詞法語法解析,將HQL轉換為為AST(抽象語法樹);
      2.遍歷AST,抽象出查詢的基本組成單元QueryBlock(查詢塊),可以理解為最小的查詢執行單元;
      3.遍歷QueryBlock,將其轉換為OperatorTree(操作樹,也就是邏輯執行計劃),可以理解為不可拆分的一個邏輯執行單元;
      4.使用邏輯優化器對OperatorTree(操作樹)進行邏輯優化。例如合并不必要的ReduceSinkOperator,減少Shuffle數據量;
      5.遍歷OperatorTree,轉換為TaskTree。也就是翻譯為MR任務的流程,將邏輯執行計劃轉換為物理執行計劃;
      6.使用物理優化器對TaskTree進行物理優化;
      7.生成最終的執行計劃,提交任務到Hadoop集群運行。
       

       

      posted @ 2021-08-22 18:46  秋華  閱讀(1766)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 任我爽精品视频在线播放| 欧美成人精品手机在线| 久久香蕉欧美精品| 成人永久免费A∨一级在线播放 | 亚洲综合成人av在线| av大片在线无码免费| 蜜臀视频在线观看一区二区| 九九热在线免费精品视频| 国产一区二区三区不卡视频| 亚洲综合色婷婷中文字幕| 成人综合人人爽一区二区| 乱人伦人妻系列| 五月丁香激激情亚洲综合| 99久久亚洲综合精品成人| 亚洲国产亚洲综合在线尤物| 久久人体视频| 色窝窝免费播放视频在线| 天堂网www在线资源网| 九九热在线免费视频观看| 精品国产迷系列在线观看| 国产精品国产精品国产专区| 91中文字幕在线一区| 高清偷拍一区二区三区| 一区二区三区日本久久九| 最新的国产成人精品2022| 98精品全国免费观看视频 | 少妇人妻真实偷人精品| 国产精品一区中文字幕| 国产精品最新免费视频| 国产精品第一区亚洲精品| 少妇愉情理伦片高潮日本| 精品偷拍一区二区三区| 视频一区二区三区自拍偷拍| 隆回县| 国产一区二区不卡视频在线| 老师扒下内裤让我爽了一夜| 久久天天躁狠狠躁夜夜婷 | 亚洲国产欧美在线看片一国产| 欧美高清一区三区在线专区 | 99精产国品一二三产品香蕉| 国产视频一区二区在线看|