最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

大數(shù)據(jù)離線階段05:數(shù)倉(cāng)倉(cāng)庫(kù),Hive

2023-08-21 09:38 作者:程序員四次元ポケット  | 我要投稿

數(shù)據(jù)倉(cāng)庫(kù)

數(shù)據(jù)倉(cāng)庫(kù)的基本概念

數(shù)據(jù)倉(cāng)庫(kù),英文名稱為Data Warehouse,可簡(jiǎn)寫(xiě)為DW或DWH。數(shù)據(jù)倉(cāng)庫(kù)的目的是構(gòu)建面向分析的集成化數(shù)據(jù)環(huán)境,為企業(yè)提供決策支持(Decision Support)。它出于分析性報(bào)告和決策支持目的而創(chuàng)建。

數(shù)據(jù)倉(cāng)庫(kù)本身并不“生產(chǎn)”任何數(shù)據(jù),同時(shí)自身也不需要“消費(fèi)”任何的數(shù)據(jù),數(shù)據(jù)來(lái)源于外部,并且開(kāi)放給外部應(yīng)用,這也是為什么叫“倉(cāng)庫(kù)”,而不叫“工廠”的原因。


數(shù)據(jù)倉(cāng)庫(kù)的主要特征

數(shù)據(jù)倉(cāng)庫(kù)是面向主題的(Subject-Oriented )、集成的(Integrated)、非易失的(Non-Volatile)和時(shí)變的(Time-Variant )數(shù)據(jù)集合,用以支持管理決策 。

面向主題

傳統(tǒng)數(shù)據(jù)庫(kù)中,最大的特點(diǎn)是面向應(yīng)用進(jìn)行數(shù)據(jù)的組織,各個(gè)業(yè)務(wù)系統(tǒng)可能是相互分離的。而數(shù)據(jù)倉(cāng)庫(kù)則是面向主題的。主題是一個(gè)抽象的概念,是較高層次上企業(yè)信息系統(tǒng)中的數(shù)據(jù)綜合、歸類并進(jìn)行分析利用的抽象。在邏輯意義上,它是對(duì)應(yīng)企業(yè)中某一宏觀分析領(lǐng)域所涉及的分析對(duì)象。

操作型處理(傳統(tǒng)數(shù)據(jù))對(duì)數(shù)據(jù)的劃分并不適用于決策分析。而基于主題組織的數(shù)據(jù)則不同,它們被劃分為各自獨(dú)立的領(lǐng)域,每個(gè)領(lǐng)域有各自的邏輯內(nèi)涵但互不交叉,在抽象層次上對(duì)數(shù)據(jù)進(jìn)行完整、一致和準(zhǔn)確的描述。一些主題相關(guān)的數(shù)據(jù)通常分布在多個(gè)操作型系統(tǒng)中。


集成性

通過(guò)對(duì)分散、獨(dú)立、異構(gòu)的數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行抽取、清理、轉(zhuǎn)換和匯總便得到了數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù),這樣保證了數(shù)據(jù)倉(cāng)庫(kù)內(nèi)的數(shù)據(jù)關(guān)于整個(gè)企業(yè)的一致性。

數(shù)據(jù)倉(cāng)庫(kù)中的綜合數(shù)據(jù)不能從原有的數(shù)據(jù)庫(kù)系統(tǒng)直接得到。因此在數(shù)據(jù)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)之前,必然要經(jīng)過(guò)統(tǒng)一與綜合,這一步是數(shù)據(jù)倉(cāng)庫(kù)建設(shè)中最關(guān)鍵、最復(fù)雜的一步,所要完成的工作有:

(1)要統(tǒng)一源數(shù)據(jù)中所有矛盾之處,如字段的同名異義、異名同義、單位不統(tǒng)一、字長(zhǎng)不一致,等等。

(2)進(jìn)行數(shù)據(jù)綜合和計(jì)算。數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)綜合工作可以在從原有數(shù)據(jù)庫(kù)抽取數(shù)據(jù)時(shí)生成,但許多是在數(shù)據(jù)倉(cāng)庫(kù)內(nèi)部生成的,即進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)以后進(jìn)行綜合生成的。

下圖說(shuō)明一個(gè)保險(xiǎn)公司綜合數(shù)據(jù)的簡(jiǎn)單處理過(guò)程,其中數(shù)據(jù)倉(cāng)庫(kù)中與“保險(xiǎn)”主題有關(guān)的數(shù)據(jù)來(lái)自于多個(gè)不同的操作型系統(tǒng)。這些系統(tǒng)內(nèi)部數(shù)據(jù)的命名可能不同,數(shù)據(jù)格式也可能不同。把不同來(lái)源的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)倉(cāng)庫(kù)之前,需要去除這些不一致。



非易失性(不可更新性)

操作型數(shù)據(jù)庫(kù)主要服務(wù)于日常的業(yè)務(wù)操作,使得數(shù)據(jù)庫(kù)需要不斷地對(duì)數(shù)據(jù)實(shí)時(shí)更新,以便迅速獲得當(dāng)前最新數(shù)據(jù),不至于影響正常的業(yè)務(wù)運(yùn)作。在數(shù)據(jù)倉(cāng)庫(kù)中只要保存過(guò)去的業(yè)務(wù)數(shù)據(jù),不需要每一筆業(yè)務(wù)都實(shí)時(shí)更新數(shù)據(jù)倉(cāng)庫(kù),而是根據(jù)商業(yè)需要每隔一段時(shí)間把一批較新的數(shù)據(jù)導(dǎo)入數(shù)據(jù)倉(cāng)庫(kù)。

數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)反映的是一段相當(dāng)長(zhǎng)的時(shí)間內(nèi)歷史數(shù)據(jù)的內(nèi)容,是不同時(shí)點(diǎn)的數(shù)據(jù)庫(kù)快照的集合,以及基于這些快照進(jìn)行統(tǒng)計(jì)、綜合和重組的導(dǎo)出數(shù)據(jù)。

數(shù)據(jù)非易失性主要是針對(duì)應(yīng)用而言。數(shù)據(jù)倉(cāng)庫(kù)的用戶對(duì)數(shù)據(jù)的操作大多是數(shù)據(jù)查詢或比較復(fù)雜的挖掘,一旦數(shù)據(jù)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)以后,一般情況下被較長(zhǎng)時(shí)間保留。數(shù)據(jù)倉(cāng)庫(kù)中一般有大量的查詢操作,但修改和刪除操作很少。因此,數(shù)據(jù)經(jīng)加工和集成進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)后是極少更新的,通常只需要定期的加載和更新。

時(shí)變性

數(shù)據(jù)倉(cāng)庫(kù)包含各種粒度的歷史數(shù)據(jù)。數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)可能與某個(gè)特定日期、星期、月份、季度或者年份有關(guān)。數(shù)據(jù)倉(cāng)庫(kù)的目的是通過(guò)分析企業(yè)過(guò)去一段時(shí)間業(yè)務(wù)的經(jīng)營(yíng)狀況,挖掘其中隱藏的模式。雖然數(shù)據(jù)倉(cāng)庫(kù)的用戶不能修改數(shù)據(jù),但并不是說(shuō)數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)是永遠(yuǎn)不變的。分析的結(jié)果只能反映過(guò)去的情況,當(dāng)業(yè)務(wù)變化后,挖掘出的模式會(huì)失去時(shí)效性。因此數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)需要更新,以適應(yīng)決策的需要。從這個(gè)角度講,數(shù)據(jù)倉(cāng)庫(kù)建設(shè)是一個(gè)項(xiàng)目,更是一個(gè)過(guò)程 。數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)隨時(shí)間的變化表現(xiàn)在以下幾個(gè)方面。 (1)數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)時(shí)限一般要遠(yuǎn)遠(yuǎn)長(zhǎng)于操作型數(shù)據(jù)的數(shù)據(jù)時(shí)限。 (2)操作型系統(tǒng)存儲(chǔ)的是當(dāng)前數(shù)據(jù),而數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)是歷史數(shù)據(jù)。 (3)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)是按照時(shí)間順序追加的,它們都帶有時(shí)間屬性。

數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)庫(kù)區(qū)別

數(shù)據(jù)庫(kù)與數(shù)據(jù)倉(cāng)庫(kù)的區(qū)別實(shí)際講的是OLTP與OLAP的區(qū)別。



操作型處理,叫聯(lián)機(jī)事務(wù)處理OLTP(On-Line Transaction Processing,),也可以稱面向交易的處理系統(tǒng),它是針對(duì)具體業(yè)務(wù)在數(shù)據(jù)庫(kù)聯(lián)機(jī)的日常操作,通常對(duì)少數(shù)記錄進(jìn)行查詢、修改。用戶較為關(guān)心操作的響應(yīng)時(shí)間、數(shù)據(jù)的安全性、完整性和并發(fā)支持的用戶數(shù)等問(wèn)題。傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)作為數(shù)據(jù)管理的主要手段,主要用于操作型處理。

分析型處理,叫聯(lián)機(jī)分析處理OLAP(On-Line Analytical Processing)一般針對(duì)某些主題的歷史數(shù)據(jù)進(jìn)行分析,支持管理決策。

首先要明白,數(shù)據(jù)倉(cāng)庫(kù)的出現(xiàn),并不是要取代數(shù)據(jù)庫(kù)。

  • 數(shù)據(jù)庫(kù)是面向事務(wù)的設(shè)計(jì),數(shù)據(jù)倉(cāng)庫(kù)是面向主題設(shè)計(jì)的。

  • 數(shù)據(jù)庫(kù)一般存儲(chǔ)業(yè)務(wù)數(shù)據(jù),數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)的一般是歷史數(shù)據(jù)。

  • 數(shù)據(jù)庫(kù)設(shè)計(jì)是盡量避免冗余,一般針對(duì)某一業(yè)務(wù)應(yīng)用進(jìn)行設(shè)計(jì),比如一張簡(jiǎn)單的User表,記錄用戶名、密碼等簡(jiǎn)單數(shù)據(jù)即可,符合業(yè)務(wù)應(yīng)用,但是不符合分析。數(shù)據(jù)倉(cāng)庫(kù)在設(shè)計(jì)是有意引入冗余,依照分析需求,分析維度、分析指標(biāo)進(jìn)行設(shè)計(jì)。

  • 數(shù)據(jù)庫(kù)是為捕獲數(shù)據(jù)而設(shè)計(jì),數(shù)據(jù)倉(cāng)庫(kù)是為分析數(shù)據(jù)而設(shè)計(jì)。

數(shù)據(jù)倉(cāng)庫(kù),是在數(shù)據(jù)庫(kù)已經(jīng)大量存在的情況下,為了進(jìn)一步挖掘數(shù)據(jù)資源、為了決策需要而產(chǎn)生的,它決不是所謂的“大型數(shù)據(jù)庫(kù)”。


數(shù)據(jù)倉(cāng)庫(kù)分層架構(gòu)

按照數(shù)據(jù)流入流出的過(guò)程,數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)可分為三層——源數(shù)據(jù)、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)應(yīng)用。

數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)來(lái)源于不同的源數(shù)據(jù),并提供多樣的數(shù)據(jù)應(yīng)用,數(shù)據(jù)自下而上流入數(shù)據(jù)倉(cāng)庫(kù)后向上層開(kāi)放應(yīng)用,而數(shù)據(jù)倉(cāng)庫(kù)只是中間集成化數(shù)據(jù)管理的一個(gè)平臺(tái)。

  • 源數(shù)據(jù)層(ODS):此層數(shù)據(jù)無(wú)任何更改,直接沿用外圍系統(tǒng)數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù),不對(duì)外開(kāi)放;為臨時(shí)存儲(chǔ)層,是接口數(shù)據(jù)的臨時(shí)存儲(chǔ)區(qū)域,為后一步的數(shù)據(jù)處理做準(zhǔn)備。

  • 數(shù)據(jù)倉(cāng)庫(kù)層(DW):也稱為細(xì)節(jié)層,DW層的數(shù)據(jù)應(yīng)該是一致的、準(zhǔn)確的、干凈的數(shù)據(jù),即對(duì)源系統(tǒng)數(shù)據(jù)進(jìn)行了清洗(去除了雜質(zhì))后的數(shù)據(jù)。

  • 數(shù)據(jù)應(yīng)用層(DA或APP):前端應(yīng)用直接讀取的數(shù)據(jù)源;根據(jù)報(bào)表、專題分析需求而計(jì)算生成的數(shù)據(jù)。

數(shù)據(jù)倉(cāng)庫(kù)從各數(shù)據(jù)源獲取數(shù)據(jù)及在數(shù)據(jù)倉(cāng)庫(kù)內(nèi)的數(shù)據(jù)轉(zhuǎn)換和流動(dòng)都可以認(rèn)為是ETL(抽取Extra, 轉(zhuǎn)化Transfer, 裝載Load)的過(guò)程,ETL是數(shù)據(jù)倉(cāng)庫(kù)的流水線,也可以認(rèn)為是數(shù)據(jù)倉(cāng)庫(kù)的血液,它維系著數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)的新陳代謝,而數(shù)據(jù)倉(cāng)庫(kù)日常的管理和維護(hù)工作的大部分精力就是保持ETL的正常和穩(wěn)定。

為什么要對(duì)數(shù)據(jù)倉(cāng)庫(kù)分層?

用空間換時(shí)間,通過(guò)大量的預(yù)處理來(lái)提升應(yīng)用系統(tǒng)的用戶體驗(yàn)(效率),因此數(shù)據(jù)倉(cāng)庫(kù)會(huì)存在大量冗余的數(shù)據(jù);不分層的話,如果源業(yè)務(wù)系統(tǒng)的業(yè)務(wù)規(guī)則發(fā)生變化將會(huì)影響整個(gè)數(shù)據(jù)清洗過(guò)程,工作量巨大。

通過(guò)數(shù)據(jù)分層管理可以簡(jiǎn)化數(shù)據(jù)清洗的過(guò)程,因?yàn)榘言瓉?lái)一步的工作分到了多個(gè)步驟去完成,相當(dāng)于把一個(gè)復(fù)雜的工作拆成了多個(gè)簡(jiǎn)單的工作,把一個(gè)大的黑盒變成了一個(gè)白盒,每一層的處理邏輯都相對(duì)簡(jiǎn)單和容易理解,這樣我們比較容易保證每一個(gè)步驟的正確性,當(dāng)數(shù)據(jù)發(fā)生錯(cuò)誤的時(shí)候,往往我們只需要局部調(diào)整某個(gè)步驟即可。

ETL、ELT

數(shù)據(jù)倉(cāng)庫(kù)從各數(shù)據(jù)源獲取數(shù)據(jù)及在數(shù)據(jù)倉(cāng)庫(kù)內(nèi)的數(shù)據(jù)轉(zhuǎn)換和流動(dòng)都可以認(rèn)為是ETL(抽取Extract, 轉(zhuǎn)化Transform , 裝載Load)的過(guò)程。

但是在實(shí)際操作中將數(shù)據(jù)加載到倉(cāng)庫(kù)卻產(chǎn)生了兩種不同做法:ETL和ELT。

ETL

首先從數(shù)據(jù)源池中提取數(shù)據(jù),這些數(shù)據(jù)源通常是事務(wù)性數(shù)據(jù)庫(kù)。數(shù)據(jù)保存在臨時(shí)暫存數(shù)據(jù)庫(kù)中(ODS)。然后執(zhí)行轉(zhuǎn)換操作,將數(shù)據(jù)結(jié)構(gòu)化并轉(zhuǎn)換為適合目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的形式。然后將結(jié)構(gòu)化數(shù)據(jù)加載到倉(cāng)庫(kù)中,以備分析。


ELT

使用ELT,數(shù)據(jù)在從數(shù)據(jù)源中提取后立即加載。沒(méi)有專門(mén)的臨時(shí)數(shù)據(jù)庫(kù)(ODS),這意味著數(shù)據(jù)會(huì)立即加載到單一的集中存儲(chǔ)庫(kù)中。數(shù)據(jù)在數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)中進(jìn)行轉(zhuǎn)換,以便與商業(yè)智能工具(BI工具)一起使用。大數(shù)據(jù)時(shí)代數(shù)倉(cāng)這個(gè)特點(diǎn)很明顯。


Apache Hive

Hive 簡(jiǎn)介

什么是Hive

Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供類SQL查詢功能。

本質(zhì)是將SQL轉(zhuǎn)換為MapReduce程序。

主要用途:用來(lái)做離線數(shù)據(jù)分析,比直接用MapReduce開(kāi)發(fā)效率更高。


為什么使用Hive

直接使用Hadoop MapReduce處理數(shù)據(jù)所面臨的問(wèn)題:

人員學(xué)習(xí)成本太高

MapReduce實(shí)現(xiàn)復(fù)雜查詢邏輯開(kāi)發(fā)難度太大

使用Hive :

操作接口采用類SQL語(yǔ)法,提供快速開(kāi)發(fā)的能力

避免了去寫(xiě)MapReduce,減少開(kāi)發(fā)人員的學(xué)習(xí)成本

功能擴(kuò)展很方便

Hive 架構(gòu)

Hive架構(gòu)圖


Hive組件

用戶接口:包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)為shell命令行;JDBC/ODBC是Hive的JAVA實(shí)現(xiàn),與傳統(tǒng)數(shù)據(jù)庫(kù)JDBC類似;WebGUI是通過(guò)瀏覽器訪問(wèn)Hive。

元數(shù)據(jù)存儲(chǔ):通常是存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)如 mysql/derby中。Hive 將元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中。Hive 中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。

解釋器、編譯器、優(yōu)化器、執(zhí)行器:完成 HQL 查詢語(yǔ)句從詞法分析、語(yǔ)法分析、編譯、優(yōu)化以及查詢計(jì)劃的生成。生成的查詢計(jì)劃存儲(chǔ)在 HDFS 中,并在隨后有 MapReduce 調(diào)用執(zhí)行。

Hive與Hadoop的關(guān)系

Hive利用HDFS存儲(chǔ)數(shù)據(jù),利用MapReduce查詢分析數(shù)據(jù)。

Hive與傳統(tǒng)數(shù)據(jù)庫(kù)對(duì)比

hive用于海量數(shù)據(jù)的離線數(shù)據(jù)分析。

hive具有sql數(shù)據(jù)庫(kù)的外表,但應(yīng)用場(chǎng)景完全不同,hive只適合用來(lái)做批量數(shù)據(jù)統(tǒng)計(jì)分析。

更直觀的對(duì)比請(qǐng)看下面這幅圖:


Hive 安裝部署

Hive安裝前需要安裝好JDK和Hadoop。配置好環(huán)境變量。如果需要使用mysql來(lái)存儲(chǔ)元數(shù)據(jù),則需要mysql也安裝好。

metadata 、metastore

Metadata即元數(shù)據(jù)。元數(shù)據(jù)包含用Hive創(chuàng)建的database、table、表的字段等元信息。元數(shù)據(jù)存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)中。如hive內(nèi)置的Derby、第三方如MySQL等。

Metastore即元數(shù)據(jù)服務(wù),作用是:客戶端連接metastore服務(wù),metastore再去連接MySQL數(shù)據(jù)庫(kù)來(lái)存取元數(shù)據(jù)。有了metastore服務(wù),就可以有多個(gè)客戶端同時(shí)連接,而且這些客戶端不需要知道MySQL數(shù)據(jù)庫(kù)的用戶名和密碼,只需要連接metastore 服務(wù)即可。


metastore三種配置方式

metastore服務(wù)配置有3種模式:內(nèi)嵌模式、本地模式、遠(yuǎn)程模式。區(qū)分3種配置方式的關(guān)鍵是弄清楚兩個(gè)問(wèn)題:

  • Metastore服務(wù)是否需要單獨(dú)配置、單獨(dú)啟動(dòng)?

  • Metadata是存儲(chǔ)在內(nèi)置的derby中,還是第三方RDBMS,比如Mysql。

本系列課程中使用企業(yè)推薦模式--遠(yuǎn)程模式部署。

內(nèi)嵌模式

內(nèi)嵌模式使用的是內(nèi)嵌的Derby數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)元數(shù)據(jù),也不需要額外起Metastore服務(wù)。數(shù)據(jù)庫(kù)和Metastore服務(wù)都嵌入在主Hive Server進(jìn)程中。這個(gè)是默認(rèn)的,配置簡(jiǎn)單,但是一次只能一個(gè)客戶端連接,適用于用來(lái)實(shí)驗(yàn),不適用于生產(chǎn)環(huán)境。

解壓hive安裝包 ?bin/hive 啟動(dòng)即可使用

缺點(diǎn):不同路徑啟動(dòng)hive,每一個(gè)hive擁有一套自己的元數(shù)據(jù),無(wú)法共享。


本地模式

本地模式采用外部數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)元數(shù)據(jù),目前支持的數(shù)據(jù)庫(kù)有:MySQL、Postgres、Oracle、MS SQL Server.在這里我們使用MySQL。

本地模式不需要單獨(dú)起metastore服務(wù),用的是跟hive在同一個(gè)進(jìn)程里的metastore服務(wù)。也就是說(shuō)當(dāng)你啟動(dòng)一個(gè)hive 服務(wù),里面默認(rèn)會(huì)幫我們啟動(dòng)一個(gè)metastore服務(wù)。

hive根據(jù)hive.metastore.uris 參數(shù)值來(lái)判斷,如果為空,則為本地模式。

缺點(diǎn)是:每啟動(dòng)一次hive服務(wù),都內(nèi)置啟動(dòng)了一個(gè)metastore。

本地模式下hive的配置主需要指定mysql的相關(guān)信息即可。

遠(yuǎn)程模式

遠(yuǎn)程模式下,需要單獨(dú)起metastore服務(wù),然后每個(gè)客戶端都在配置文件里配置連接到該metastore服務(wù)。遠(yuǎn)程模式的metastore服務(wù)和hive運(yùn)行在不同的進(jìn)程里。

在生產(chǎn)環(huán)境中,建議用遠(yuǎn)程模式來(lái)配置Hive Metastore。

在這種情況下,其他依賴hive的軟件都可以通過(guò)Metastore訪問(wèn)hive。

遠(yuǎn)程模式下,需要配置hive.metastore.uris 參數(shù)來(lái)指定metastore服務(wù)運(yùn)行的機(jī)器ip和端口,并且需要單獨(dú)手動(dòng)啟動(dòng)metastore服務(wù)。

Hive metastore遠(yuǎn)程模式安裝部署

課程中采用遠(yuǎn)程模式部署hive的metastore服務(wù)。在node1機(jī)器上安裝。

注意:以下兩件事在啟動(dòng)hive之前必須確保正常完成。

  1. 選擇某臺(tái)機(jī)器提前安裝mysql,確保具有遠(yuǎn)程訪問(wèn)的權(quán)限。

  2. 啟動(dòng)hadoop集群 確保集群正常健康

Hadoop中添加用戶代理配置

上傳安裝包 并解壓

修改配置文件hive-env.sh

添加配置文件hive-site.xml

上傳MySQL驅(qū)動(dòng)

初始化元數(shù)據(jù)

創(chuàng)建hive存儲(chǔ)目錄

metastore 的啟動(dòng)方式

Hive Client、Beeline Client

第一代客戶端Hive Client

在hive安裝包的bin目錄下,有hive提供的第一代客戶端 bin/hive。使用該客戶端可以訪問(wèn)hive的metastore服務(wù)。從而達(dá)到操作hive的目的。

如果需要在其他機(jī)器上通過(guò)該客戶端訪問(wèn)hive metastore服務(wù),只需要在該機(jī)器的hive-site.xml配置中添加metastore服務(wù)地址即可。

scp安裝包到另一個(gè)機(jī)器上,比如node3:

vim ?hive-site.xml 內(nèi)容如下:

使用下面的命令啟動(dòng)hive的客戶端:

可以發(fā)現(xiàn)官方提示:第一代客戶端已經(jīng)不推薦使用了。

第二代客戶端Hive Beeline Client

hive經(jīng)過(guò)發(fā)展,推出了第二代客戶端beeline,但是beeline客戶端不是直接訪問(wèn)metastore服務(wù)的,而是需要單獨(dú)啟動(dòng)hiveserver2服務(wù)。

在hive運(yùn)行的服務(wù)器上,首先啟動(dòng)metastore服務(wù),然后啟動(dòng)hiveserver2服務(wù)。

nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &

nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 &

在node3上使用beeline客戶端進(jìn)行連接訪問(wèn)。

/export/server/apache-hive-3.1.2-bin/bin/beeline

beeline> ! connect jdbc:hive2://node1:10000

Enter username for jdbc:hive2://node1:10000: root

Enter password for jdbc:hive2://node1:10000: *******


大數(shù)據(jù)離線階段05:數(shù)倉(cāng)倉(cāng)庫(kù),Hive的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
苏尼特左旗| 阜宁县| 万宁市| 陈巴尔虎旗| 新巴尔虎左旗| 抚州市| 闸北区| 吉安县| 沂南县| 八宿县| 乾安县| 龙胜| 阿瓦提县| 土默特右旗| 深泽县| 南木林县| 廉江市| 华蓥市| 镇平县| 丰顺县| 凤冈县| 广灵县| 濉溪县| 永寿县| 南宁市| 绥中县| 盐津县| 武乡县| 金坛市| 镶黄旗| 建水县| 海原县| 丹东市| 洛浦县| 新建县| 舟曲县| 娄烦县| 济阳县| 呼伦贝尔市| 且末县| 龙海市|