2020-04-13

大數(shù)據(jù)之Hive

一.Hive基本概念

1.什么是Hive
  • Hive是Facebook開(kāi)源用于處理 海量 結(jié)構(gòu)化 日志的數(shù)據(jù)統(tǒng)計(jì)
  • Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,將結(jié)構(gòu)化數(shù)據(jù)文件映射成一張表,并提供類SQL語(yǔ)句
  • 本質(zhì)是HQL轉(zhuǎn)換為MapReduce程序
    • 【1】數(shù)據(jù)存儲(chǔ)在HDFS
    • 【2】分析數(shù)據(jù)底層的默認(rèn)實(shí)現(xiàn)是MapReduce
    • 【3】執(zhí)行程序在Yarn上
  • Hive區(qū)別于大數(shù)據(jù)中其他計(jì)算框架最大的不同是,它是單機(jī)的,其他的是分布式的,因?yàn)樗拇鎯?chǔ),運(yùn)算都是基于Hadoop,相當(dāng)于一個(gè)客戶端
2.Hive優(yōu)缺點(diǎn)
  • 優(yōu)點(diǎn)
    • 【1】實(shí)現(xiàn)采用類SQL語(yǔ)句,開(kāi)發(fā)速度快,學(xué)習(xí)成本低
    • 【2】Hive用于 大數(shù)據(jù)量 離線 分析,適合實(shí)時(shí)性要求不高的場(chǎng)合
    • 【3】支持用戶自定義函數(shù)
  • 缺點(diǎn)
    • 【1】HQL表達(dá)能力有限(迭代運(yùn)算無(wú)法表達(dá);數(shù)據(jù)挖掘方面不擅長(zhǎng))
    • 【2】執(zhí)行效率低(基于MapReduce,執(zhí)行延遲高;調(diào)優(yōu)粒度粗)
3.Hive架構(gòu)原理
Hive架構(gòu)原理.jpg
  • 用戶接口:Client CLI(hive shell)、JDBC/ODBC(java 訪問(wèn) hive)、WEBUI(瀏覽器訪問(wèn) hive)
  • 元數(shù)據(jù)(Meta store):數(shù)據(jù)表信息及數(shù)據(jù)實(shí)際存儲(chǔ)信息(默認(rèn)存儲(chǔ)在自帶的 derby 數(shù)據(jù)庫(kù)中,推薦使用 MySQL 存儲(chǔ) Metastore )
  • 驅(qū)動(dòng)器:Driver
    • 【1】SQL解析器:將 SQL 字符串轉(zhuǎn)換成抽象語(yǔ)法樹(shù) AST,這一步一般都用第三方工具庫(kù)完成,比如 antlr;對(duì) AST 進(jìn)行語(yǔ)法分析,比如表是否存在、字段是否存在、SQL 語(yǔ)義是否有誤
    • 【2】編譯器:將 AST 編譯生成邏輯執(zhí)行計(jì)劃
    • 【3】?jī)?yōu)化器:對(duì)邏輯執(zhí)行計(jì)劃進(jìn)行優(yōu)化
    • 【4】執(zhí)行器:把邏輯執(zhí)行計(jì)劃轉(zhuǎn)換成可以運(yùn)行的物理計(jì)劃(如 MR/Spark)
4.Hive與數(shù)據(jù)庫(kù)比較
  • 查詢語(yǔ)言(HQL SQL)
  • 數(shù)據(jù)存儲(chǔ)位置(Hive存儲(chǔ)在HDFS上 ,數(shù)據(jù)庫(kù)一般在塊設(shè)備或本地系統(tǒng))
  • 數(shù)據(jù)更新(Hive不適合數(shù)據(jù)修改,數(shù)據(jù)庫(kù)更注重與用戶的交互)
  • 可擴(kuò)展性(Hive可擴(kuò)展性是和 Hadoop 的可擴(kuò)展性是一致的 ,數(shù)據(jù)庫(kù)擴(kuò)展能力有限)
  • 執(zhí)行延遲(Hive適合大數(shù)據(jù)量的分析,執(zhí)行延遲高,對(duì)于數(shù)據(jù)量較少的場(chǎng)景,數(shù)據(jù)庫(kù)的優(yōu)勢(shì)更高)

二.Hive的安裝和環(huán)境準(zhǔn)備

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容