摘要:通過給用戶提供的一系列交互接口,接收到用戶的指令,使用自己的,結(jié)合元數(shù)據(jù),將這些指令翻譯成,提交到中執(zhí)行,最后,將執(zhí)行返回的結(jié)果輸出到用戶交互接口。
hive是由Facebook開源用于解決海量結(jié)構(gòu)化日志的數(shù)據(jù)統(tǒng)計工具,是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張表,并提供類 SQL查詢功能。
將HQL轉(zhuǎn)化成MapReduce程序。
(1)Hive處理的數(shù)據(jù)存儲在HDFS
(2)Hive分析數(shù)據(jù)底層的實現(xiàn)是MapReduce
(3)執(zhí)行程序運行在Yarm上
(1)操作接口采用類SQL語法,提供快速開發(fā)的能力(簡單、容易上手)
(2)避免了去寫MapReduce,減少開發(fā)人員的學(xué)習(xí)成本
(3)Hive的執(zhí)行延遲比較高,因此Hive常用于數(shù)據(jù)分析,對實時性要求不高的場合
(4)Hive優(yōu)勢在于處理大數(shù)據(jù),對于處理小數(shù)據(jù)沒有優(yōu)勢,這是由于Hive的執(zhí)行延遲比較高造成的
(5)HIve支持用戶自定義函數(shù),用戶可以根據(jù)自己的需求來實現(xiàn)自己的函數(shù)
(1) 迭代式算法無法表達
(2) 數(shù)據(jù)挖掘方面不擅長,由于MapReduce數(shù)據(jù)處理流程的限制,效率更高的算法卻無法實現(xiàn)。
(1) Hive自動生成的MapReduce作業(yè),通常情況下不夠智能化
(2) Hive調(diào)優(yōu)比較困難,粒度較粗。
Hive通過給用戶提供的一系列交互接口,接收到用戶的指令(SQL),使用自己的 Driver,結(jié)合元數(shù)據(jù)(MetaStore),將這些指令翻譯成MapReduce,提交到Hadoop中執(zhí)行,最后,將執(zhí)行返回的結(jié)果輸出到用戶交互接口。
由于Hive采用了類似SQL的查詢語言HQL(Hive Query Language),因此很容易將Hive理解為數(shù)據(jù)庫。其實從結(jié)構(gòu)上來看,Hive和數(shù)據(jù)庫除了擁有類似的查詢語言,再無類似之處。本文將從多個方面來闡述Hive和數(shù)據(jù)庫的差異。數(shù)據(jù)庫可以用在Online的應(yīng)用中,但是Hive是為數(shù)據(jù)倉庫而設(shè)計的,清楚這一點,有助于從應(yīng)用角度理解Hive的特性。
由于 SQL 被廣泛的應(yīng)用在數(shù)據(jù)倉庫中,因此,專門針對Hive 的特性設(shè)計了類SQL的查詢語言 HQL。熟悉 SQL開發(fā)的開發(fā)者可以很方便的使用 Hive進行開發(fā)。
由于 Hive是針對數(shù)據(jù)倉庫應(yīng)用設(shè)計的,而數(shù)據(jù)倉庫的內(nèi)容是讀多寫少的。因此,Hive中不建議對數(shù)據(jù)的改寫,所有的數(shù)據(jù)都是在加載的時候確定好的。而數(shù)據(jù)庫中的數(shù)據(jù)通常是需要經(jīng)常進行修改的,因此可以使用 INSERTINTO... VALUES添加數(shù)據(jù),使用 UPDATE ...SET 修改數(shù)據(jù)。
Hive在查詢數(shù)據(jù)的時候,由于沒有索引,需要掃描整個表,因此延遲較高。
另外一個導(dǎo)致Hive執(zhí)行延遲高的因素是 MapReduce 框架。由于MapReduce本身具有較高的延遲,因此在利用 MapReduce 執(zhí)行 Hive查詢時,也會有較高的延遲。相對的,數(shù)據(jù)庫的執(zhí)行延遲較低。當(dāng)然,這個低是有條件的,即數(shù)據(jù)規(guī)模較小,當(dāng)數(shù)據(jù)規(guī)模大到超過數(shù)據(jù)庫的處理能力的時候,Hive的并行計算顯然能體現(xiàn)出優(yōu)勢。
由于Hive建立在集群上并可以利用 MapReduce 進行并行計算,因此可以支持很大規(guī)模的數(shù)據(jù);對應(yīng)的,數(shù)據(jù)庫可以支持的數(shù)據(jù)規(guī)模較小。
摘自尚硅谷
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/125937.html
摘要:從中獲取用戶對查詢樹中的表達式進行數(shù)據(jù)類型檢查和基于分區(qū)的查詢預(yù)測所需的元數(shù)據(jù)信息。生成的執(zhí)行計劃是一個由不同的組成的有向無環(huán)圖,每個有可能是一個任務(wù),或者元數(shù)據(jù)信息操作,或者操作。如果任務(wù)執(zhí)行會導(dǎo)致元素局信息的變動,會通知進行元數(shù)據(jù)修改。 本系列文章使用的硬件環(huán)境為:centOS 6.5 64bit / 4G RAM 30G HHD使用的Hive版本為: hive2.0.0 / H...
摘要:在有贊的技術(shù)演進。業(yè)務(wù)數(shù)據(jù)量正在不斷增大,這些任務(wù)會影響業(yè)務(wù)對外服務(wù)的承諾。監(jiān)控需要收集上執(zhí)行的的審計信息,包括提交者執(zhí)行的具體,開始結(jié)束時間,執(zhí)行完成狀態(tài)。還有一點是詳細(xì)介紹了的原理,實踐中設(shè)置了的比默認(rèn)的減少了以上的時間。 前言 有贊數(shù)據(jù)平臺從2017年上半年開始,逐步使用 SparkSQL 替代 Hive 執(zhí)行離線任務(wù),目前 SparkSQL 每天的運行作業(yè)數(shù)量5000個,占離線...
摘要:在有贊的技術(shù)演進。業(yè)務(wù)數(shù)據(jù)量正在不斷增大,這些任務(wù)會影響業(yè)務(wù)對外服務(wù)的承諾。監(jiān)控需要收集上執(zhí)行的的審計信息,包括提交者執(zhí)行的具體,開始結(jié)束時間,執(zhí)行完成狀態(tài)。還有一點是詳細(xì)介紹了的原理,實踐中設(shè)置了的比默認(rèn)的減少了以上的時間。 前言 有贊數(shù)據(jù)平臺從2017年上半年開始,逐步使用 SparkSQL 替代 Hive 執(zhí)行離線任務(wù),目前 SparkSQL 每天的運行作業(yè)數(shù)量5000個,占離線...
摘要:用例測試表繼續(xù)用上述的創(chuàng)建測試文件,內(nèi)容如下創(chuàng)建文件,內(nèi)容如下根據(jù)文件加載數(shù)據(jù)檢查數(shù)據(jù)是否轉(zhuǎn)換成功初試主要是針對大數(shù)據(jù)量的且一般是批量裝載的方式。 Trafodion 的數(shù)據(jù)加載主要包括兩種方法,即 Trickle Load(持續(xù)加載) 和 Bulk Load(批量加載)。下表介紹了兩種加載方法的區(qū)別: 類型 描述 方法/工具 Trickle Load 數(shù)據(jù)量較小,立即插入 ...
閱讀 3546·2023-04-25 20:09
閱讀 3745·2022-06-28 19:00
閱讀 3066·2022-06-28 19:00
閱讀 3092·2022-06-28 19:00
閱讀 3185·2022-06-28 19:00
閱讀 2886·2022-06-28 19:00
閱讀 3057·2022-06-28 19:00
閱讀 2644·2022-06-28 19:00