五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

Hive基本原理

Hive結(jié)構(gòu)

Hive結(jié)構(gòu)

Hive為單實(shí)例的服務(wù)進(jìn)程,提供服務(wù)的原理是將HQL編譯解析成相應(yīng)的MapReduce或者HDFS任務(wù)。

  • 各模塊的功能說明如下:
  • HiveServer

    一個(gè)集群內(nèi)可部署多個(gè)HiveServer,負(fù)荷分擔(dān)。對(duì)外提供Hive數(shù)據(jù)庫(kù)服務(wù),將用戶提交的HQL語(yǔ)句進(jìn)行編譯,解析成對(duì)應(yīng)的Yarn任務(wù)或者HDFS操作,從而完成數(shù)據(jù)的提取、轉(zhuǎn)換、分析。

    MetaStore

    一個(gè)集群內(nèi)可部署多個(gè)MetaStore,負(fù)荷分擔(dān)。提供Hive的元數(shù)據(jù)服務(wù),負(fù)責(zé)Hive表的結(jié)構(gòu)和屬性信息讀、寫、維護(hù)和修改。

    提供Thrift接口,供HiveServer、Spark、WebHCat等MetaStore客戶端來(lái)訪問,操作元數(shù)據(jù)。

    WebHCat

    一個(gè)集群內(nèi)可部署多個(gè)WebHCat,負(fù)荷分擔(dān)。提供Rest接口,通過Rest執(zhí)行Hive命令,提交MapReduce任務(wù)。

    Hive客戶端

    包括人機(jī)交互命令行Beeline、提供給JDBC應(yīng)用的JDBC驅(qū)動(dòng)、提供給Python應(yīng)用的Python驅(qū)動(dòng)、提供給Mapreduce的HCatalog相關(guān)JAR包。

    ZooKeeper集群

    ZooKeeper作為臨時(shí)節(jié)點(diǎn)記錄各HiveServer實(shí)例的IP地址列表,客戶端驅(qū)動(dòng)連接Zookeeper獲取該列表,并根據(jù)路由機(jī)制選取對(duì)應(yīng)的HiveServer實(shí)例。

    HDFS/HBase集群

    Hive表數(shù)據(jù)存儲(chǔ)在HDFS集群中。

    MapReduce/Yarn集群

    提供分布式計(jì)算服務(wù):Hive的大部分?jǐn)?shù)據(jù)操作依賴MapReduce,HiveServer的主要功能是將HQL語(yǔ)句轉(zhuǎn)換成MapReduce任務(wù),從而完成對(duì)海量數(shù)據(jù)的處理。

Hive原理

Hive原理

Hive作為一個(gè)基于HDFS和MapReduce架構(gòu)的數(shù)據(jù)倉(cāng)庫(kù),其主要能力是通過對(duì)HQL(Hive Query Language)編譯和解析,生成并執(zhí)行相應(yīng)的MapReduce任務(wù)或者HDFS操作。

  • 各模塊的功能說明如下:
  • Metastore

    對(duì)表,列和Partition等的元數(shù)據(jù)進(jìn)行讀寫及更新操作,其下層為關(guān)系型數(shù)據(jù)庫(kù)。

    Driver

    管理HiveQL執(zhí)行的生命周期并貫穿Hive任務(wù)整個(gè)執(zhí)行期間。

    Compiler

    編譯HiveQL并將其轉(zhuǎn)化為一系列相互依賴的Map/Reduce任務(wù)。

    Optimizer

    優(yōu)化器,分為邏輯優(yōu)化器和物理優(yōu)化器,分別對(duì)HiveQL生成的執(zhí)行計(jì)劃和MapReduce任務(wù)進(jìn)行優(yōu)化。

    Executor

    按照任務(wù)的依賴關(guān)系分別執(zhí)行MapReduce任務(wù)。

    ThriftServer

    提供thrift接口,作為JDBC和ODBC的服務(wù)端,并將Hive和其他應(yīng)用程序集成起來(lái)。

    Clients

    包含WebUI和JDBC/ODBC接口,為用戶訪問提供接口。

Hive CBO原理介紹

Hive CBO原理介紹

CBO(Cost Based Optimization),即基于代價(jià)的優(yōu)化器。優(yōu)化目標(biāo)是:在編譯階段,根據(jù)查詢語(yǔ)句中涉及到的表和查詢條件,計(jì)算出產(chǎn)生中間結(jié)果少的高效join順序,從而減少查詢時(shí)間和資源消耗。

  • Hive中實(shí)現(xiàn)CBO的總體過程如下:
  • Hive使用開源組件Apache Calcite實(shí)現(xiàn)CBO。首先SQL語(yǔ)句轉(zhuǎn)化成Hive的AST,然后轉(zhuǎn)成Calcite可以識(shí)別的RelNodes。Calcite將RelNode中的Join順序調(diào)整后,再由Hive將RelNode轉(zhuǎn)成AST,繼續(xù)Hive的邏輯優(yōu)化和物理優(yōu)化過程。

    Calcite調(diào)整Join順序的具體過程如下:

    1、針對(duì)所有參與Join的表,依次選取一個(gè)表作為第一張表。

    2、依據(jù)選取的第一張表,根據(jù)代價(jià)選擇第二張表,第三張表。由此可以得到多個(gè)不同的執(zhí)行計(jì)劃。

    3、計(jì)算出代價(jià)最小的一個(gè)計(jì)劃,作為最終的順序優(yōu)化結(jié)果。

Hive與其他組件的關(guān)系

  • Hive與HDFS組件的關(guān)系

    Hive是Apache的Hadoop項(xiàng)目的子項(xiàng)目,Hive利用HDFS作為其文件存儲(chǔ)系統(tǒng)。Hive通過解析和計(jì)算處理結(jié)構(gòu)化的數(shù)據(jù),Hadoop HDFS則為Hive提供了高可靠性的底層存儲(chǔ)支持。Hive數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)文件都可以存儲(chǔ)在Hadoop HDFS文件系統(tǒng)上,Hive所有的數(shù)據(jù)操作也都是通過Hadoop HDFS接口進(jìn)行的。

    Hive是Apache的Hadoop項(xiàng)目的子項(xiàng)目,Hive利用HDFS作為其文件存儲(chǔ)系統(tǒng)。Hive通過解析和計(jì)算處理結(jié)構(gòu)化的數(shù)據(jù),Hadoop HDFS則為Hive提供了高可靠性的底層存儲(chǔ)支持。Hive數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)文件都可以存儲(chǔ)在Hadoop HDFS文件系統(tǒng)上,Hive所有的數(shù)據(jù)操作也都是通過Hadoop HDFS接口進(jìn)行的。

  • Hive與MapReduce組件的關(guān)系

    Hive的數(shù)據(jù)計(jì)算依賴于MapReduce。MapReduce也是Apache的Hadoop項(xiàng)目的子項(xiàng)目,它是一個(gè)基于Hadoop HDFS分布式并行計(jì)算框架。Hive進(jìn)行數(shù)據(jù)分析時(shí),會(huì)將用戶提交的HQL語(yǔ)句解析成相應(yīng)的MapReduce任務(wù)并提交MapReduce執(zhí)行。

    Hive的數(shù)據(jù)計(jì)算依賴于MapReduce。MapReduce也是Apache的Hadoop項(xiàng)目的子項(xiàng)目,它是一個(gè)基于Hadoop HDFS分布式并行計(jì)算框架。Hive進(jìn)行數(shù)據(jù)分析時(shí),會(huì)將用戶提交的HQL語(yǔ)句解析成相應(yīng)的MapReduce任務(wù)并提交MapReduce執(zhí)行。

  • Hive與Tez的關(guān)系

    Tez是Apache的開源項(xiàng)目,它是一個(gè)支持有向無(wú)環(huán)圖的分布式計(jì)算框架,Hive使用Tez引擎進(jìn)行數(shù)據(jù)分析時(shí),會(huì)將用戶提交的HQL語(yǔ)句解析成相應(yīng)的Tez任務(wù)并提交Tez執(zhí)行。

    Tez是Apache的開源項(xiàng)目,它是一個(gè)支持有向無(wú)環(huán)圖的分布式計(jì)算框架,Hive使用Tez引擎進(jìn)行數(shù)據(jù)分析時(shí),會(huì)將用戶提交的HQL語(yǔ)句解析成相應(yīng)的Tez任務(wù)并提交Tez執(zhí)行。

  • Hive與DBService的關(guān)系

    Hive的MetaStore(元數(shù)據(jù)服務(wù))處理Hive的數(shù)據(jù)庫(kù)、表、分區(qū)等的結(jié)構(gòu)和屬性信息(即Hive的元數(shù)據(jù)),這些信息需要存放在一個(gè)關(guān)系型數(shù)據(jù)庫(kù)中,由MetaStore管理和處理。在產(chǎn)品中,Hive的元數(shù)據(jù)由DBService組件存儲(chǔ)和維護(hù),由Metadata組件提供元數(shù)據(jù)服務(wù)。

    Hive的MetaStore(元數(shù)據(jù)服務(wù))處理Hive的數(shù)據(jù)庫(kù)、表、分區(qū)等的結(jié)構(gòu)和屬性信息(即Hive的元數(shù)據(jù)),這些信息需要存放在一個(gè)關(guān)系型數(shù)據(jù)庫(kù)中,由MetaStore管理和處理。在產(chǎn)品中,Hive的元數(shù)據(jù)由DBService組件存儲(chǔ)和維護(hù),由Metadata組件提供元數(shù)據(jù)服務(wù)。

Hive開源增強(qiáng)特性

  • Hive開源增強(qiáng)特性:支持HDFS Colocation

    HDFS Colocation(同分布)是HDFS提供的數(shù)據(jù)分布控制功能,利用HDFS Colocation接口,可以將存在關(guān)聯(lián)關(guān)系或者可能進(jìn)行關(guān)聯(lián)操作的數(shù)據(jù)存放在相同的存儲(chǔ)節(jié)點(diǎn)上。

    Hive支持HDFS的Colocation功能,即在創(chuàng)建Hive表時(shí),通過設(shè)置表文件分布的locator信息,可以將相關(guān)表的數(shù)據(jù)文件存放在相同的存儲(chǔ)節(jié)點(diǎn)上,從而使后續(xù)的多表關(guān)聯(lián)的數(shù)據(jù)計(jì)算更加方便和高效。

    HDFS Colocation(同分布)是HDFS提供的數(shù)據(jù)分布控制功能,利用HDFS Colocation接口,可以將存在關(guān)聯(lián)關(guān)系或者可能進(jìn)行關(guān)聯(lián)操作的數(shù)據(jù)存放在相同的存儲(chǔ)節(jié)點(diǎn)上。

    Hive支持HDFS的Colocation功能,即在創(chuàng)建Hive表時(shí),通過設(shè)置表文件分布的locator信息,可以將相關(guān)表的數(shù)據(jù)文件存放在相同的存儲(chǔ)節(jié)點(diǎn)上,從而使后續(xù)的多表關(guān)聯(lián)的數(shù)據(jù)計(jì)算更加方便和高效。

  • Hive開源增強(qiáng)特性:支持列加密功能

    Hive支持對(duì)表的某一列或者多列進(jìn)行加密。在創(chuàng)建Hive表時(shí),可以指定要加密的列和加密算法。當(dāng)使用insert語(yǔ)句向表中插入數(shù)據(jù)時(shí),即可將對(duì)應(yīng)的列進(jìn)行加密。Hive列加密不支持視圖以及Hive over HBase場(chǎng)景。

    Hive列加密機(jī)制目前支持的加密算法有兩種,具體使用的算法在建表時(shí)指定。其中:

    AES(對(duì)應(yīng)加密類名稱為:org.apache.hadoop.hive.serde2.AESRewriter)

    SMS4(對(duì)應(yīng)加密類名稱為:org.apache.hadoop.hive.serde2.SMS4Rewriter)

    Hive支持對(duì)表的某一列或者多列進(jìn)行加密。在創(chuàng)建Hive表時(shí),可以指定要加密的列和加密算法。當(dāng)使用insert語(yǔ)句向表中插入數(shù)據(jù)時(shí),即可將對(duì)應(yīng)的列進(jìn)行加密。Hive列加密不支持視圖以及Hive over HBase場(chǎng)景。

    Hive列加密機(jī)制目前支持的加密算法有兩種,具體使用的算法在建表時(shí)指定。其中:

    AES(對(duì)應(yīng)加密類名稱為:org.apache.hadoop.hive.serde2.AESRewriter)

    SMS4(對(duì)應(yīng)加密類名稱為:org.apache.hadoop.hive.serde2.SMS4Rewriter)

  • Hive開源增強(qiáng)特性:支持行分隔符

    通常情況下,Hive以文本文件存儲(chǔ)的表會(huì)以回車作為其行分隔符,即在查詢過程中,以回車符作為一行表數(shù)據(jù)的結(jié)束符。

    但某些數(shù)據(jù)文件并不是以回車分隔的規(guī)則文本格式,而是以某些特殊符號(hào)分割其規(guī)則文本。

    MRS Hive支持指定不同的字符或字符組合作為Hive文本數(shù)據(jù)的行分隔符。

    通常情況下,Hive以文本文件存儲(chǔ)的表會(huì)以回車作為其行分隔符,即在查詢過程中,以回車符作為一行表數(shù)據(jù)的結(jié)束符。

    但某些數(shù)據(jù)文件并不是以回車分隔的規(guī)則文本格式,而是以某些特殊符號(hào)分割其規(guī)則文本。

    MRS Hive支持指定不同的字符或字符組合作為Hive文本數(shù)據(jù)的行分隔符。

  • Hive開源增強(qiáng)特性:支持HBase刪除功能

    由于底層存儲(chǔ)系統(tǒng)的原因,Hive并不能支持對(duì)單條表數(shù)據(jù)進(jìn)行刪除操作,但在Hive on HBase功能中,MRS解決方案中的Hive提供了對(duì)HBase表的單條數(shù)據(jù)的刪除功能,通過特定的語(yǔ)法,Hive可以將自己在HBase表中符合條件的一條或者多條數(shù)據(jù)清除。

    由于底層存儲(chǔ)系統(tǒng)的原因,Hive并不能支持對(duì)單條表數(shù)據(jù)進(jìn)行刪除操作,但在Hive on HBase功能中,MRS解決方案中的Hive提供了對(duì)HBase表的單條數(shù)據(jù)的刪除功能,通過特定的語(yǔ)法,Hive可以將自己在HBase表中符合條件的一條或者多條數(shù)據(jù)清除。

  • Hive開源增強(qiáng)特性:支持?jǐn)?shù)據(jù)庫(kù)授權(quán)

    Hive開源社區(qū)版本只支持?jǐn)?shù)據(jù)庫(kù)的擁有者在數(shù)據(jù)庫(kù)中創(chuàng)建表。MRS Hive支持授予用戶在數(shù)據(jù)庫(kù)中創(chuàng)建表“CREATE”和查詢表“SELECT”權(quán)限。當(dāng)授予用戶在數(shù)據(jù)庫(kù)中查詢的權(quán)限之后,系統(tǒng)會(huì)自動(dòng)關(guān)聯(lián)數(shù)據(jù)庫(kù)中所有表的查詢權(quán)限。

    Hive開源社區(qū)版本只支持?jǐn)?shù)據(jù)庫(kù)的擁有者在數(shù)據(jù)庫(kù)中創(chuàng)建表。MRS Hive支持授予用戶在數(shù)據(jù)庫(kù)中創(chuàng)建表“CREATE”和查詢表“SELECT”權(quán)限。當(dāng)授予用戶在數(shù)據(jù)庫(kù)中查詢的權(quán)限之后,系統(tǒng)會(huì)自動(dòng)關(guān)聯(lián)數(shù)據(jù)庫(kù)中所有表的查詢權(quán)限。

  • Hive開源增強(qiáng)特性:支持列授權(quán)

    Hive開源社區(qū)版本只支持表級(jí)別的權(quán)限控制。MRS Hive支持列級(jí)別的權(quán)限控制,可授予用戶列級(jí)別權(quán)限,例如查詢“SELECT”、插入“INSERT”、修改“UPDATE”權(quán)限。

    Hive開源社區(qū)版本只支持表級(jí)別的權(quán)限控制。MRS Hive支持列級(jí)別的權(quán)限控制,可授予用戶列級(jí)別權(quán)限,例如查詢“SELECT”、插入“INSERT”、修改“UPDATE”權(quán)限。