hive組件能提供什么服務(wù)

本篇內(nèi)容介紹了“hive組件能提供什么服務(wù)”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站主營羅城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,App定制開發(fā),羅城h5重慶小程序開發(fā)搭建,羅城網(wǎng)站營銷推廣歡迎羅城等地區(qū)企業(yè)咨詢

hive組件可提供的服務(wù):1、把SQL語句轉(zhuǎn)化成mapreduce代碼;2、可以對數(shù)據(jù)進(jìn)行存儲,存儲使用 HDFS;3、可以對數(shù)據(jù)進(jìn)行計算,計算使用MapReduce。hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,用來進(jìn)行數(shù)據(jù)提取、轉(zhuǎn)化、加載;hive數(shù)據(jù)倉庫工具能將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供SQL查詢功能,能將SQL語句轉(zhuǎn)變成MapReduce任務(wù)來執(zhí)行。

在搭建數(shù)據(jù)倉庫時,Hive組件在其中發(fā)揮了非常關(guān)鍵的作用,我們知道Hive是一個基于Hadoop的重要數(shù)據(jù)倉庫工具,但具體如何應(yīng)用則需要我們進(jìn)一步進(jìn)行探索。


Hive是什么

hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,用來進(jìn)行數(shù)據(jù)提取、轉(zhuǎn)化、加載,這是一種可以存儲、查詢和分析存儲在Hadoop中的大規(guī)模數(shù)據(jù)的機制。hive數(shù)據(jù)倉庫工具能將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供SQL查詢功能,能將SQL語句轉(zhuǎn)變成MapReduce任務(wù)來執(zhí)行。Hive的優(yōu)點是學(xué)習(xí)成本低,可以通過類似SQL語句實現(xiàn)快速MapReduce統(tǒng)計,使MapReduce變得更加簡單,而不必開發(fā)專門的MapReduce應(yīng)用程序。hive十分適合對數(shù)據(jù)倉庫進(jìn)行統(tǒng)計分析

Hive用來做什么

1.把SQL語句轉(zhuǎn)化成mapreduce代碼
2.可以對數(shù)據(jù)進(jìn)行存儲 存儲使用 HDFS
3.可以對數(shù)據(jù)進(jìn)行計算 計算使用 MapReduce

Hive的優(yōu)勢是什么

a.Hive的優(yōu)點

(1)簡單容易上手:提供了類SQL查詢語言HQL

(2)可擴展:為超大數(shù)據(jù)集設(shè)計了計算/擴展能力(MR作為計算引擎,HDFS作為存儲系統(tǒng))

一般情況下不需要重啟服務(wù)Hive可以自由的擴展集群的規(guī)模。

(3)提供統(tǒng)一的元數(shù)據(jù)管理

(4)延展性:Hive支持用戶自定義函數(shù),用戶可以根據(jù)自己的需求來實現(xiàn)自己的函數(shù)

(5)容錯:良好的容錯性,節(jié)點出現(xiàn)問題SQL仍可完成執(zhí)行

b.Hive的缺點

(1)hive的HQL表達(dá)能力有限

  • 1)迭代式算法無法表達(dá),比如pagerank

  • 2)數(shù)據(jù)挖掘方面,比如kmeans

(2)hive的效率比較低

  • 1)hive自動生成的mapreduce作業(yè),通常情況下不夠智能化

  • 2)hive調(diào)優(yōu)比較困難,粒度較粗

  • 3)hive可控性差

(3)Hive不支持事物。主要用作OLAP(聯(lián)機分析處理)

hive組件能提供什么服務(wù)

1) Hive 處理的數(shù)據(jù)存儲在 HDFS

2) Hive 分析數(shù)據(jù)底層的默認(rèn)實現(xiàn)是 MapReduce

3) 執(zhí)行程序運行在 Yarn 上

總結(jié):相當(dāng)于是hadoop的一個客戶端的作用。

為什么用Hive

(1)Hive與傳統(tǒng)數(shù)據(jù)庫的比較

hive組件能提供什么服務(wù)

Hive用于海量數(shù)據(jù)的離線數(shù)據(jù)分析。Hive具有sql數(shù)據(jù)庫的外表,但應(yīng)用場景完全不同,Hive只適合用來做批量數(shù)據(jù)統(tǒng)計分析。

(2)Hive的優(yōu)勢

Hive利用HDFS存儲數(shù)據(jù),利用MapReduce查詢分析數(shù)據(jù)。因為直接使用Hadoop MapReduce處理數(shù)據(jù),會面臨人員學(xué)習(xí)成本太高的問題,而且MapReduce實現(xiàn)復(fù)雜查詢邏輯開發(fā)難度太大。而使用Hive,操作接口采用類SQL語法,提供快速開發(fā)的能力的同時還避免了去寫MapReduce,從而減少開發(fā)人員的學(xué)習(xí)成本,功能擴展更加方便。

Hive解決了什么問題

Hive解決了大數(shù)據(jù)的查詢功能,讓不會寫MR的人也能使用MR,它的本質(zhì)就是將HQL轉(zhuǎn)換為MR. 它的底層走的是MR,寫MR效率低,而且痛苦,Hive的出現(xiàn)就為JAVAEE的兄弟帶來了捷徑和福音.

Hive 架構(gòu)原理

hive組件能提供什么服務(wù)

1. 用戶接口: Client

CLI(hive shell)、 JDBC/ODBC(java 訪問 hive)、 WEBUI(瀏覽器訪問 hive)

2. 元數(shù)據(jù): Metastore

元數(shù)據(jù)包括:表名、表所屬的數(shù)據(jù)庫(默認(rèn)是 default)、表的擁有者、列/分區(qū)字段、表

的類型(是否是外部表)、表的數(shù)據(jù)所在目錄等;

元數(shù)據(jù): Metastore

元數(shù)據(jù)包括:表名、表所屬的數(shù)據(jù)庫(默認(rèn)是 default)、表的擁有者、列/分區(qū)字段、表

的類型(是否是外部表)、表的數(shù)據(jù)所在目錄等;

默認(rèn)存儲在自帶的 derby 數(shù)據(jù)庫中,推薦使用 MySQL 存儲 Metastore。

3. Hadoop

使用 HDFS 進(jìn)行存儲,使用 MapReduce 進(jìn)行計算。

4. 驅(qū)動器: Driver

(1)解析器(SQL Parser):將 SQL 字符串轉(zhuǎn)換成抽象語法樹 AST,這一步一般都用

第三方工具庫完成,比如 antlr;對 AST 進(jìn)行語法分析,比如表是否存在、字段是否存

在、 SQL 語義是否有誤。

(2)編譯器(Physical Plan):將 AST 編譯生成邏輯執(zhí)行計劃。

(3)優(yōu)化器(Query Optimizer):對邏輯執(zhí)行計劃進(jìn)行優(yōu)化。

(4)執(zhí)行器(Execution):把邏輯執(zhí)行計劃轉(zhuǎn)換成可以運行的物理計劃。對于 Hive 來

說,就是 MR/Spark。

hive組件能提供什么服務(wù)

Hive 是建立在 Hadoop 之上的,所有 Hive 的數(shù)據(jù)都是存儲在 HDFS 中的。而數(shù)據(jù)庫則

可以將數(shù)據(jù)保存在塊設(shè)備或者本地文件系統(tǒng)中。

由于 Hive 是針對數(shù)據(jù)倉庫應(yīng)用設(shè)計的,而數(shù)據(jù)倉庫的內(nèi)容是讀多寫少的。 因此, Hive

中不建議對數(shù)據(jù)的改寫,所有的數(shù)據(jù)都是在加載的時候確定好的。而數(shù)據(jù)庫中的數(shù)據(jù)通常是

需要經(jīng)常進(jìn)行修改的,因此可以使用INSERT INTO … VALUES 添加數(shù)據(jù),使用UPDATE … SET 修改數(shù)據(jù)。

Hive 和數(shù)據(jù)庫比較

由于 Hive 采用了類似 SQL 的查詢語言 HQL(Hive Query Language),因此很容易將 Hive 理解為數(shù)據(jù)庫。其實從結(jié)構(gòu)上來看, Hive 和數(shù)據(jù)庫除了擁有類似的查詢語言,再無類似之處。本節(jié)將從多個方面來闡述 Hive 和數(shù)據(jù)庫的差異。數(shù)據(jù)庫可以用在 Online 的應(yīng)用中,但是 Hive 是為數(shù)據(jù)倉庫而設(shè)計的,清楚這一點,有助于從應(yīng)用角度理解 Hive 的特性。

1、查詢語言
由于 SQL 被廣泛的應(yīng)用在數(shù)據(jù)倉庫中,因此,專門針對 Hive 的特性設(shè)計了類 SQL 的查詢語言 HQL。熟悉 SQL 開發(fā)的開發(fā)者可以很方便的使用 Hive 進(jìn)行開發(fā)。

2、數(shù)據(jù)存儲位置Hive 是建立在 Hadoop 之上的,所有 Hive 的數(shù)據(jù)都是存儲在 HDFS 中的。而數(shù)據(jù)庫則可以將數(shù)據(jù)保存在塊設(shè)備或者本地文件系統(tǒng)中。

3 、數(shù)據(jù)更新:由于 Hive 是針對數(shù)據(jù)倉庫應(yīng)用設(shè)計的,而數(shù)據(jù)倉庫的內(nèi)容是讀多寫少的。 因此, Hive中不建議對數(shù)據(jù)的改寫,所有的數(shù)據(jù)都是在加載的時候確定好的。 而數(shù)據(jù)庫中的數(shù)據(jù)通常是需 要 經(jīng) 常 進(jìn) 行 修 改 的 , 因 此 可 以 使 用 INSERT INTO … VALUES 添 加 數(shù) 據(jù) , 使用 UPDATE … SET 修改數(shù)據(jù)。

4 、索引:Hive 在加載數(shù)據(jù)的過程中不會對數(shù)據(jù)進(jìn)行任何處理,甚至不會對數(shù)據(jù)進(jìn)行掃描,因此也沒有對數(shù)據(jù)中的某些 Key 建立索引。 Hive 要訪問數(shù)據(jù)中滿足條件的特定值時,需要暴力掃描整個數(shù)據(jù),因此訪問延遲較高。由于 MapReduce 的引入, Hive 可以并行訪問數(shù)據(jù),因此即使沒有索引,對于大數(shù)據(jù)量的訪問, Hive 仍然可以體現(xiàn)出優(yōu)勢。數(shù)據(jù)庫中,通常會針對一個或者幾個列建立索引,因此對于少量的特定條件的數(shù)據(jù)的訪問,數(shù)據(jù)庫可以有很高的效率,較低的延遲。由于數(shù)據(jù)的訪問延遲較高,決定了 Hive 不適合在線數(shù)據(jù)查詢。

5、 執(zhí)行:Hive 中大多數(shù)查詢的執(zhí)行是通過 Hadoop 提供的 MapReduce 來實現(xiàn)的。而數(shù)據(jù)庫通常有自己的執(zhí)行引擎。

6、執(zhí)行延遲: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)勢。

7 、可擴展性:由于 Hive 是建立在 Hadoop 之上的,因此 Hive 的可擴展性是和 Hadoop 的可擴展性是一致的(世界上最大的 Hadoop 集群在 Yahoo!, 2009 年的規(guī)模在 4000 臺節(jié)點左右)。而數(shù)據(jù)庫由于 ACID 語義的嚴(yán)格限制,擴展行非常有限。目前最先進(jìn)的并行數(shù)據(jù)庫 Oracle 在理論上的擴展能力也只有 100 臺左右。

8、 數(shù)據(jù)規(guī)模:由于 Hive 建立在集群上并可以利用 MapReduce 進(jìn)行并行計算,因此可以支持很大規(guī)模的數(shù)據(jù);對應(yīng)的,數(shù)據(jù)庫可以支持的數(shù)據(jù)規(guī)模較小。

“hive組件能提供什么服務(wù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

分享文章:hive組件能提供什么服務(wù)
網(wǎng)頁路徑:http://muchs.cn/article20/pidijo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、搜索引擎優(yōu)化、面包屑導(dǎo)航網(wǎng)站策劃、網(wǎng)站排名、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(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)

搜索引擎優(yōu)化