Hive是建立在Hadoop上的 數(shù)據(jù)倉(cāng)庫(kù) 基礎(chǔ)構(gòu)架。它提供了一系列的工具,可以用來(lái)進(jìn)行數(shù)據(jù)提取轉(zhuǎn)化加載(ETL),這是一種可以存儲(chǔ)、查詢和分析存儲(chǔ)在Hadoop中的大規(guī)模數(shù)據(jù)的機(jī)制。Hive定義了簡(jiǎn)單的類SQL查詢語(yǔ)言,稱為HiveQL,它允許熟悉SQL的用戶查詢數(shù)據(jù)。Hive的數(shù)據(jù)計(jì)算依賴于MapReduce、Spark、Tez。
使用新的執(zhí)行引擎Tez代替原先的MapReduce,性能有了顯著提升。Tez可以將多個(gè)有依賴的作業(yè)轉(zhuǎn)換為一個(gè)作業(yè)(這樣只需寫一次HDFS,且中間節(jié)點(diǎn)較少),從而大大提升DAG作業(yè)的性能。
Hive主要特點(diǎn)如下:
海量結(jié)構(gòu)化數(shù)據(jù)分析匯總。
將復(fù)雜的MapReduce編寫任務(wù)簡(jiǎn)化為SQL語(yǔ)句。
靈活的數(shù)據(jù)存儲(chǔ)格式,支持JSON,CSV,TEXTFILE,RCFILE,SEQUENCEFILE,ORC(Optimized Row Columnar)這幾種存儲(chǔ)格式。
Hive體系結(jié)構(gòu):
用戶接口:用戶接口主要有三個(gè):CLI,Client和WUI。其中最常用的是CLI,CLI啟動(dòng)的時(shí)候,會(huì)同時(shí)啟動(dòng)一個(gè)Hive副本。Client是Hive的客戶端,用戶連接至Hive Server。在啟動(dòng)Client模式的時(shí)候,需要指出Hive Server所在節(jié)點(diǎn),并且在該節(jié)點(diǎn)啟動(dòng)Hive Server。WUI是通過(guò)瀏覽器訪問(wèn)Hive。MRS僅支持Client方式訪問(wèn)Hive,使用操作請(qǐng)參考從零開(kāi)始使用Hive,應(yīng)用開(kāi)發(fā)請(qǐng)參考Hive應(yīng)用開(kāi)發(fā)。
元數(shù)據(jù)存儲(chǔ):Hive將元數(shù)據(jù)存儲(chǔ)在 數(shù)據(jù)庫(kù) 中,如mysql、derby。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。