欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

hive基本架構(gòu)

如下圖所示,從邏輯上來看,Hive包含了3大部分。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站建設、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的安遠網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

  • Hive Clients
  • Hive Services
  • Hive Storage and Computing
    hive 基本架構(gòu)

用戶操作Hive的接口主要有三個:CLI,Client 和 WUI。

其中最常用的是CLI,Cli啟動的時候,會同時啟動一個Hive副本。

Client是Hive的客戶端,用戶連接至Hive Server。在啟動 Client模式的時候,需要指出Hive Server所在節(jié)點,并且在該節(jié)點啟動Hive Server。而客戶端則又可以分為三種Thrift Client,JDBC Client,ODBC Client。

Web Interface是通過瀏覽器訪問Hive。

  • Hive將元數(shù)據(jù)存儲在數(shù)據(jù)庫中,如MySQL、derby。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。
  • 解釋器、編譯器、優(yōu)化器完成HQL查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計劃的生成。生成的查詢計劃存儲在HDFS中,并在隨后由MapReduce調(diào)用執(zhí)行。
  • Hive的數(shù)據(jù)存儲在HDFS中,大部分的查詢、計算由MapReduce完成(注意,包含的查詢,比如select from tbl不會生成MapRedcue任務)。
    上圖中的Driver會處理從應用到metastore到filed system的所有請求,以進行后續(xù)操作。

Hive組件

Driver

實現(xiàn)了session handler,在JDBC/ODBC接口上實現(xiàn)了執(zhí)行和獲取信息的API。

Compiler

該組件用于對不同的查詢表達式做解析查詢,語義分析,最終會根據(jù)從metastore中查詢到的表和分區(qū)元數(shù)據(jù)生成一個execution plain。

Execution Egine

該組件會執(zhí)行由compiler創(chuàng)建的execution。其中plan從數(shù)據(jù)結(jié)構(gòu)上來看,是一個DAG,該組件會管理plan的不同stage與組件中執(zhí)行這些plan之間的依賴。

Metastore

Hive的metastore組件是hive元數(shù)據(jù)集中存放地。該組件存儲了包括變量表中列和列類型等結(jié)構(gòu)化的信息以及數(shù)據(jù)倉庫中的分區(qū)信息(包括列和列類型信息,讀寫數(shù)據(jù)時必要的序列化和反序列化信息,數(shù)據(jù)被存儲在HDFS文件中的位置)。

Metastore組件包括兩個部分:metastore services和Meta storage database。

  • Metastore database的介質(zhì)就是關(guān)系數(shù)據(jù)庫,例如hive默認的嵌入式磁盤數(shù)據(jù)庫derby,還有mysql數(shù)據(jù)庫。
  • Metastore services是建立在后臺數(shù)據(jù)存儲介質(zhì)(HDFS)之上,并且可以和hive services進行交互的服務組件。
    默認情況下,metastore services和hive services是安裝在一起的,運行在同一個進程當中。也可以把metastore services從hive services里剝離出來,將metastore獨立安裝在一個集群里,hive遠程調(diào)用metastore services。這樣我們可以把元數(shù)據(jù)這一層放到防火墻之后,客戶端訪問hive服務,就可以連接到元數(shù)據(jù)這一層,從而提供了更好的管理性和安全保障。

使用遠程的metastore services,可以讓metastore services和hive services運行在不同的進程里,這樣也保證了hive的穩(wěn)定性,提升了hive services的效率。

Hive執(zhí)行過程

hive 基本架構(gòu)

流程大致步驟為:

  1. 用戶提交查詢等任務給Driver。
  2. Driver為查詢操作創(chuàng)建一個session handler,接著dirver會發(fā)送查詢操作到compiler去生成一個execute plan
  3. Compiler根據(jù)用戶任務去MetaStore中獲取需要的Hive的元數(shù)據(jù)信息。這些元數(shù)據(jù)在后續(xù)stage中用作抽象語法樹的類型檢測和修剪。
  4. Compiler得到元數(shù)據(jù)信息,對task進行編譯,先將HiveQL轉(zhuǎn)換為抽象語法樹,然后將抽象語法樹轉(zhuǎn)換成查詢塊,將查詢塊轉(zhuǎn)化為邏輯的查詢plan,重寫邏輯查詢plan,將邏輯plan轉(zhuǎn)化為物理的plan(MapReduce), 最后選擇最佳策略。
  5. 將最終的plan提交給Driver。
  6. Driver將plan轉(zhuǎn)交給ExecutionEngine去執(zhí)行,將獲取到的元數(shù)據(jù)信息,提交到JobTracker或者RsourceManager執(zhí)行該task,任務會直接讀取到HDFS中進行相應的操作。
  7. 獲取執(zhí)行的結(jié)果。
  8. 取得并返回執(zhí)行結(jié)果。

創(chuàng)建表

解析用戶提交的Hive語句->對其進行解析->分解為表、字段、分區(qū)等Hive對象

根據(jù)解析到的信息構(gòu)建對應的表、字段、分區(qū)等對象,從SEQUENCE_TABLE中獲取構(gòu)建對象的最新的ID,與構(gòu)建對象信息(名稱、類型等等)一同通過DAO方法寫入元數(shù)據(jù)庫的表中,成功后將SEQUENCE_TABLE中對應的最新ID+5。

實際上常見的RDBMS都是通過這種方法進行組織的,其系統(tǒng)表中和Hive元數(shù)據(jù)一樣顯示了這些ID信息。通過這些元數(shù)據(jù)可以很容易的讀取到數(shù)據(jù)。

優(yōu)化器

優(yōu)化器是一個不斷更新的組件,大部分plan的轉(zhuǎn)移都是通過優(yōu)化器完成的。

  • 將多Multiple join 合并為一個Muti-way join
  • 對join、group-by和自定義的MapReduce操作重新進行劃分。
  • 消減不必要的列。
  • 在表的掃描操作中推行使用斷言。
  • 對于已分區(qū)的表,消減不必要的分區(qū)。
  • 在抽樣查詢中,消減不必要的桶。
  • 優(yōu)化器還增加了局部聚合操作用于處理大分組聚合和增加再分區(qū)操作用于處理不對稱的分組聚合。

新聞標題:hive基本架構(gòu)
網(wǎng)頁鏈接:http://chinadenli.net/article42/gjshec.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗定制開發(fā)、品牌網(wǎng)站制作、服務器托管做網(wǎng)站、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司