




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課程名稱:Hadoop大數據開發基礎
章節名稱:Hadoop大數據倉庫工具Hive
1晾智酷道捷教育科技有限公司
2020年02月
目錄
一、實訓目的2
二、實訓方式...................................................................2
三、實訓內容....................................................................2
.更HIVE的安裝配置..........................................................2
<HIVE表的操作...........................................................41
四、實訓環境...................................................................67
五、項目雷牌..................................................................68
六、評分標準..................................................................69
一、實訓目的
了解了Hive的概念、Hive與關系型數據庫的異同、Hive的組件以及體系結構等知識
后,為了讓學生掌握Hive的安裝配置和Hive表的相關操作,特制訂本項目實訓指導手冊。
通過本項目課程的學習,要求學生掌握并達成以下的目標:
>理解Hive的組件架構和體系結構。
>能夠熟練搭建Hive及其各個組件。
>掌握Hive表的創建和相關操作。
二、實訓方式
項目實訓采取理論+實戰的學習輔導形式,先理論后實戰,循序漸進,以練為主。
具體分為兩個部分:實訓基礎、實戰演練。
實訓鄲出:教師帶領學生解析項目案例,回顧之前課堂所學知識,了解Hive的概念、
Hive與關系型數據庫的異同、Hive的組件以及體系結構等知識。
實戰演練:教師帶領學生實操完成Hive的安裝配置和Hive表的相關操作,通過案例
實戰,進一步鞏固所學知識,快速掌握Hadoop大數據倉庫工具Hive的應用。
三、實訓內容
.更Hive的安裝配置
1.Hive介紹
木節課我們學習Hadoop大數據倉庫工具Hive,首先要了解其概念、組件、體系結構
以及應用等,下面逐一進行介紹。
(1)什么是Hive
Hive是基于Hadoop的數據倉庫技術,可以用來分析存儲在Hadoop中的大規模數
據,并進行ETL操作(提取、轉化、加載I
實際上Hive就是用來操作HDFS上的數據的工具。在Hive之前通過M叩Reduce或
HDFS的API也能夠對分布式文件系統中的數據進行訪問和操作,那為什么還要開發Hive
技術呢?主要是基于兩點原因:首先,由于M叩Reduce實現復雜,并且要求分析人員熟
悉Java語言的編寫,實現一MapReduce不僅要編寫Map邏輯、Reduce邏輯,還要
將項目打包上傳到集群中,然后才能執行程序的分析,這個過程比較麻煩,而且調試起來也
不夠便捷;其次,以前在傳統的數據分析中,數據都是存儲在關系數據庫里面的,當時就有
很多熟悉SQL語言的數據分析人員通過SQL語言對關系數據庫中的數據進行分析,那么如
果HDFS上的數據也能像關系數據庫一樣通過SQL或者類似于SQL語言的方式來進行分析
的話,很多以前傳統的數據分析人員就能非常容易地轉到大數據分析行業來,這對整個大數
據分析的工作會非常有利。基于以上兩點原因,一些開發人員就開發了Hive技術框架,最
早這個框架是由Facebook實現的,并且在Apache上進行了開源。
Hive的主要功能就是能夠把結構化和半結構化的數據文件映射為一張數據庫表,并提
供了類似SQL的查詢功能。
(2)Hive與關系型數據庫的差異
Hive既然支持SQL查詢,下面我們就來了解一下它與關系型數據庫的差異,可以通過
如下所示的表1來對比加深理解。
表1Hive與關系型數據庫的差異
區別Hive關系型數據庫
直詢語言HQLSQL
數據存儲位置HDFS本地文件系統
數據格式判斷查詢時判斷插入時判斷
MRExecutor
執行延遲高低
處理數據規模大小
從表1可以看出Hive與關系型數據庫的差異主要表現在以下6點,下面分別進行分析。
查詢語言不同。關系型數據庫的查詢語言為SQL語言,Hive的查詢語言是類似SQL
語言的HQL。
數據存儲位置不同。Hive的數據是存儲在HDFS分布式系統之上的,關系型數據庫的
數據存儲在操作系統的本地文件系統上。
數據格式判斷不同。Hive的數據在直詢的時候才進行數據格式的判斷;關系型數據庫
的數據則比較嚴謹,在插入的時候就會進行數據格式的判斷。
執行不同。Hive的直詢操作是轉化為底層的MapReduce執行的關系型數據庫的SQL
操作是通過底層的執行器Executor執行的。
執行延遲不同。Hive查詢操作的速度比較慢,延遲性比較高,不能做到實時查詢;關
系型數據庫查詢延遲比鈿氐,可以做到實時查詢。
處理數據規模不同.Hivl數據處理規模非常大,是針對大數據的數據倉庫,能夠處理
海量數據;關系型數據庫數據處理規模達不到海量級別,只適合傳統數據的處理。
(3)Hive組件總體框圖
了解了Hive的概念以及Hive與關系型數據庫的差異后,再來了解一下Hive組件的總
體框圖,通過如下所示的圖1從宏觀的角度來了解一下Hive的工作原理。
圖1Hive組件總體框圖
從上面的Hive組件總體框圖中可以看出Hive提供了CLI命令行的方式對HDFS中的
數據進行訪問和操作同時也提供了Beeline和HiveServer2組件的方式訪問底層的數據。
訪問數據首先必須知道數據存儲的位置,對此可以通過Hive提供的HCatalog元數據服務
來獲取數據存儲的信息,獲得存儲信息之后就可以通過相應的計算引擎,根據YARN計算
資源分配框架對HDFS中的數據進行操作了。Hive支持的數據計算引擎有多種,默認為
MapReduce,但同時也支持Spark和TEZ計算引擎所以說Hive的功能還是非常強大的。
(4)Hive的體系結構
下面我們再通過如下所示的圖2來看一下Hive的體系結構,進一步從更微觀的角度了
解Hive的工作原理。
HiveclientsHiveservicesHiv晤陶(H十算
Metastore
ThriftHiveThrift
Metastoredatabase
applicatoinClient
/
FileSystem|
JDBCHiveJDBCHive
Driver
applicationDriverServer
\_________*
Hadoop
ODBCHiveODBCHiveWebExecutioncluster
applicationDriverInterfaceEngine|,
圖2Hive的體系結構
圖中的左側提供了一些客戶端的API機制,可以通過三種協議訪問Hive數據,一種是
ThriftRPC的協議,第二個是JDBC的協議,第三個是ODBC的協議,這三種協議通過客
戶端的API封裝之后,以代碼的方式借助它里面的HiveServer組件,通過相關的驅動類
即可訪問底層的元數據服務。也可以調用分布式文件系統的FileSystem類,包括一些計算
引擎的API,對Hadoop中的數據進行分析和處理。
除了客戶端API的方式訪問Hive數據外,還提供了一個命令行的方式,也就是圖2中
中間部分左上角的CLI的方式,以及圖中黃色的部分通過瀏覽器接口進行訪問。
(5)Hive的應用
了解了Hive的組件和體系結構后,下面我們再來看一下Hive的具體應用場景。Hive
目前主要應用于以下幾個方面:一是數據倉庫ETL任務,當然這個數據倉庫是指大數據的
數據倉庫;二是對網站日志的分析,因為現在互聯網公司非常多,互聯網的訪問數據量也非
常大,所以也需要通過Hive進行數據分析;三是海量數據的離線分析,也就是只要適合
MapReduce工作的場景,一般Hive都會適用。
2.安裝Hive
Hive的安裝可以按照以下三個步驟進行,具體介紹如下。
第一步,確定Hive的版本。因為Hive是在Hadoop上使用的,所以Hive的版本需
要與當前使用的Hadoop版本匹配。
第二步,解壓安裝包。下載匹配的Hive版本后要解壓安裝包,解壓命令為tarxzf
apache-hive-x.yz-bin.tar.gzo
第三步,設置環境變量。首先配置HIVE_HOME環境變量為exportHIVE_HOME={安
裝目錄路徑};然后將HlVt.HOMt卜的bin目錄配置到PAIH目錄卜,具體為export
PATH=$PATH:$HIVE_HOME/bino
這樣就完成了Hive最簡單的安裝,下面我們通過實際操作來熟悉這個安裝的過程。
打開Hive官網,在頁面左側的菜單列表中有一個Downloads鏈接,單擊該鏈接進入
DOWNLOADS頁面,在該頁面中單擊Downloadareleasenow!鏈接,進入新的頁面,
該頁面中提供了Hive安裝包的下載地址,單擊該地址鏈接,進入Indexof/hive頁面,這
里提供了很多版本的Hive安裝包,如圖3、圖4所示。
'____________________________________________
GENERALDOWNLOADS
£::ioads|
ReleasesmaybedownloadedfromApachemirrors:
PrivacyPolicyDownloadai?理asenow!|?
DOCUMENTATION
LanguageManualOnthemirror,allrecentreleasesareavailable,butarenotguaranty
Javadoc
圖3單擊Downloads鏈接進入DOWNLOADS頁面
WesuggestThefollowingmirrorsiteforyourdownload:
http:〃/hive/
Othermirrorsitesaresuggestedbelow.
Itisessentialthatyouverifytheintegrityofthedownloadecfileus:ngthePGPsignature(.as
PleaseonlyusethebackupmirrorstodownloadKEYS.PGPsignaturesandhashes(SHA'etc)
HTTP
/hive/
http:加pacheda趣gZhivaZ|?
http:〃/hive/
匿4單擊Hive安裝包的下載地址鏈接
目前Hive的最新版本為hive-3.1.2,這個版本是與hadoop-3版本相匹配的,而這里
我們使用的是hadoop-2.9.2版本,與其匹配的是hive-2.3.6版本,所以單擊hive-2.3.6
版本的鏈接,進入Indexof/hive/hive-2.3.6頁面,右鍵單擊下載的鏈接地址
apache-hive-23.6-bin.tar.gz,在快捷菜單中選擇"復制鏈接地址",如圖5、圖6所示。
Indexof/hive
心儂LastmodifiedSizeDescription
ParentDireclorv
二hivo-1.2,2/
2018-05-0413:51-
-lhive-2.3史/2019-08-2211:53
3hive-3,◎2019-08-2613:21-
hi0.0/2018~06-0711:12-
Jhive-storaae-2.6.1/2018-05-1115:26-
ZJhive-stoc-2.7.1/2019-12-0109:42-
Jstable-2/2019-08-2211:53-
圖5單擊hive-236版本鏈接
Indexof/hive/hive-2.3.6
在新標卷頁中打開比接(T)
在新窗口中打開施接(W)
在常身向口中打開道接(G)80
鏈接另存為;K)…
艮制造,警址(E)
險查(N)Ctrl+Shift+I
圖6復制鏈接t也址
打開客戶端工具,選擇0主機(node3),輸入pwd,按下Enter鍵,輸
出結果顯示該主機當前處在opt目錄下,在該目錄下下載安裝包即可。通過Linux的wget
命令下載,輸入wget,然后粘貼之前復制的下載鏈接地址,完整命令為wgethttp:
///hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz,按下Enter鍵,即可
下載安裝包,下載完成后如圖7所示。
16M44192.16M4.9flK.16M4.10X
[rootvnode3optj#pwd
/opt[------------------------------------------------------------------------------------------1
[root?node3opt]#|wgethttp;//apache.claz.org/h3y£/hiyy-2.3.6/apache-hi”-2.3.6-b1p:tar.gz
--2019-12-2415:So!I0—~http://apache,c1az.org,n1Vfl/MV8-2.3.S/apaChV^HtVV^Z.3.B-B1HVVarTgz
Resolving()...34
connectingto(apache,claz.org)34|:80...connected.
HTTPrequestsent,awaitingresponse...302Found
Location:http://10.255.2S0.28/Tiles/60470O00l0B46693/ni1rror.bit./apache/hive/hive-2.3.6/aj
following]
--2019-12-2415:56:10—http://10.255.250.28/f11es/6047000010B46€93/?irror.b1t.edu.cn/apache/h1>
.6-bin.tar.gz
Connectingto8:80...connected.
HTTPrequestsent,awaitingresponse...200OK
Length:232225538(221M)[application/octet-strearn]
savingto:t<tfipache-hive-2.3.6-bin.tar.qzfc?;
100%[--------------------------------------------------------------------------------------------------------------------------------------------]232,2;
2019-12-2415:56:30(11.2MB/s)-tKtfipache-hive-2.3.6-bin.tar.gzt<saved[232225538/232225538]
[roorftnadp)opr]?
圖7下載安裝包
輸入tarxzvfapache-hive-2.3.6-bin.tar.gz命令,按下Enter鍵解壓安裝包。解壓完
成后輸入cdapache-hive-23.6-bin命令,按下Enter鍵進入安裝目錄下;然后輸入pwd
命令,按下Enter鍵顯示當前目錄所在路徑,復制該路徑,如圖8所示。
apache-hive-23.e-bin/hcatalog/share/webhcat/svr/Hb/^axb-Impl-Z.2.3-1^jar
apache-hive-23.6-bin/hcatalog/share/webhcat/svr/lib/^ackson-core-asl-l.9.13.jar
apache-hive-23.6-bin/hcatalog/share/webhcat/svr/lib/]ersey-core-1.14.jar
apache-hive-23.6-bin/hcatalog/share/webhcat/svr/lib/iersey-servlet-l.14.jar
apache-hive-23.6-bin/hcatalog/share/webhcat/svr/lib/n1ve-webhcat-2.3.6.jar
apache-hive-23.6-bin/hcatalog/share/webhcat/svr/lib/wadl-resourcedoc-doclet-1.4.jar
apache-hive-23.6-bin/hcatalog/share/webhcat/svr/lib/co?nmons-exec-l.1.iar
apache-hive-23.6-bin/hcatalog/share/webhcat/svr/lib/jetty-all-server-7.6.0.V2O12O127.j
apache-hive-23.6-bin/hcatalog/share/webhcat/svr/lib/jul-to-slf4j-1.7.10.jar
apache-hive-23.6-b1n/hcatalog/share/webhcat/java-client/hi7e-i*eDhcat-java-client-2.3.€
[root?node3opt]#cdapache-hive-2.3.6-bin
[root@node3apache-hive-2.3.6-bin]#pwd
Lrootgnode3apache-h1ve-2.3.6-bin]#
圖8復制安裝目錄路徑
輸入vi/etc/profile命令,按下Enter鍵,進入etc目錄下的profile文件,將光標移
到最下面,在倒數第二行位置插入HIVE_HOME環境變量的設置,即輸入export
HIVE_HOME=/opt/apache-hive-2.33-bin,也就是將HIVE_HOME指向前面復制的安裝
目錄。然后在最后一行的PATH路徑下添加HIVE_HOME的bin目錄,即在最后一行的后
面輸入:$HIVE_HOME/bin即可。這樣配置工作就完成了,輸入wq命令,按下Enter鍵
保存退出,如圖9所示。
exportJAVA_H0ME-/usr/local/jdkl.8.0_161
exportJRE_H0ME-$3AVXk_H0ME/jre
exportPATH-$PATH:$JAVA_HOM£/bin:$JRE_HOME
exportCLASSPATH-5JAVA_HOME八ib/dt.jar:SJAVA_HQME/11b/tools.jar
exportHAnnr>P_Hr*.<c-nirhadnnnhadnnn-?QQ
exportHIVE_H^'?.wache-hive-?.3.6-bin.■
exjxirtPATH-SPATH:$HADOOP_HOME/bin:$HADOOP_HOME/sb1n:/opt/zookeeper-3.4.6/bi->:$HIVE_HO**Ebin
"/etc/profile"91L.2395cwritten
[root>hode3apache-hive-2.3.6-b1n]?■
圖9設置環境變量
配置工作完成后下面進行測試。首先輸入source/etc/profile,按下Enter鍵,將新添
加的環境變量激活;然后輸入echo$HIVE_HOME,接下Enter■鍵,直看是否能夠正常輸
出HIVE.HOME,結果顯示能夠正常輸出,證明前面的配置沒有錯誤,如圖10所示。
exportHADOOP_HOME-/usr/hadoop/hadoop-2.9.2
exportHlVE_HOME-/opt/apache-nive-2.3.6-bin
exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:/opt/zookeeper-3.4.6
"/etc/profile"91L,2395cwritten一…
[root@node3apache-hive-2.3.6-binl#source7etc7profile1
frootgnode3apache-hive-2.3會bin1川echoHOMEI
octaoache-hive-2.3.6-b-frT2
[rdot@hode3apache-hive-2.
圖10檢杳配置是否有誤
輸入Is命令,按下Enter鍵,查看當前目錄(hive目錄)下的文件。在hive目錄下有
一個bin目錄,輸入Isbin命令,按下Enter鍵,查看bin目錄下的文件。可以看到bin
目錄下有一些Hive提供的腳本,使用Hive最簡單的方式就是更用hive腳本啟動相應的服
務,如圖11所示。
[root?node3apache-hive-2.3.6-bin]#Is
LICENSENOTICE
[roarAp'uhr-hixzpNZ/a.S-b'in],Itbin_________________________________________
hivPYcnfhpl^qlmetafccl"homaTool
圖11查看Hive的腳本文件
在使用hive腳本之前需要通過schematool命令實現Hive元數據庫的初始化。Hive
和NameNode有一點是相似的,就是要訪問分布式文件系統中的文件,必須要知道這個文
件的存儲位置。在HDFS中元數據信息是存儲在NameNode上的,是通過文件的形式保
存的。而在Hive中元數據信息是通過關系型數據庫來保存的,Hive安裝好之后默認提供一
個名為derby的數據庫,這個數據庫上可以存儲元數據信息。關系型數據庫是以表的形式
保存數據的,所以需要通過初始化工作把相關的表創建出來。可以通過bin/schematool
指定初始化的工作,輸入bin/schematool-dbTypederby-initSchema命令,按下Enter
鍵,執行元數據初始化的相關工作,元數據初始化完成后效果如圖12所示。
beelinehivehive-confiq.sh,■,:?1花£*?1網
[root*node3apache-hive-2.3.6-6in]<HgbSEheiaggl--36Type-der6y-1市tschema-
SLF4J:classpathcontainsnultipieSLF4Jbindings.
SLF4J:Foundbindingin[jar:file:/opt/apache-hive-2.3.6-bin/lib/log4j-slf4j-impl-2.6.2.jar!
r.class]
SLF4J:Foundbindingin[jar:f1le:/usr/hadoop/hadoop-2.9.2/share/hadoop/co<nmon/lib/slf4j-log
tatlcLoggersinder.class]
SLF4J:seehttp://www.s1f4i.org/codes.hrml#mul11ple_bindingsfcranexplanation.
SLF4J:Actualbindingisortype[org.apache.logging.slf4j.Log4jLoggerFactory]
MetastoreconnectionURL:jdbc:derby:;databaseNan>e>metastore_db;create-true
MetastoreconnectionDriver:org.apache.derby.jdbc.EmbeddeCDrlver
Merastoreconnectionuser:APP
Startingmetastoreschemainitializationto2.3.0
Initializationscripthive-schema-2.3.0.derby.sql
Initializationscriptcompleted
schemaToolcompleted
圖12實現元數據庫初始化
下面就可以執行hive命令了,輸入bin/hive命令,按下Enter鍵,hive成功啟動后
會出現一個hive>提示符的窗口,在這個窗口中就可以輸入HQL語句了。可以先通過show
databases;命令直看當前Hive環境下有哪些數據庫,按下Enter鍵,結果顯示剛安裝好
的Hive只有一個默認的default數據庫,如圖13所示。
Logginginitializedusingconfigurationinjar:file:/opt/apache-hi'
iesAsync:true
Hive-on-MRisdeprecatedinHive2andmaynotbeavailableinthe
ne(1ut.spark*tez)prusingHive1.xreleases.
hive>[_showdatabases.
9K
default
Timetaken:6.121seconds,Fetched:1row(s)
hive>■
圖13查看當前環境的數據庫
輸入createdatabasetestdb;命令,按下Enter鍵,創建一個名為testdb的數據庫,
提示創建成功。再輸入showdatabases;命令進行查看,按下Enter鍵,輸出結果顯示多
了T數據庫testdb,證明Hive已經可以正常使用了,如圖14所示。
hive>showdatabases;
OK
default
Timetaken:6.121seconds.Fetched:1row(s)
hive>createdatabasetestdb:
OK
Timetaken:0.049seconds
hive>showdatabases1]
default
ttesrdh
Timetaken:0.018seconds.Fetched:2row(s)
圖14創建數據庫并查看
當前這種方式是Hive最基本的使用方式,至此,這種方式就演示完了。
3.元數據庫配置
下面我們進一步來學習Hive的配置,前面已經在0主機上執行過hive,
輸入Is命令,按下Enter鍵有看一下執行hive命令后的目錄變化,輸出顯示當前執行hive
腳本的目錄下生成了一個名為derby.log的日志文件和一個metastore_db目錄。其中
metastore-db目錄下存儲了Hive的derby的元數據庫的信息,如圖15所示。
|?192.16a44.8I5192J68<44.9]X
[root<nodeBapache-h1ve-2r3.6-binj?】<_____
LICENSE[]NOTICi
(root^nodeBapache-h1ve-2.3.6-bin]f
圖15查看執行hive腳本后當前目錄的變化
下面切換到opt目錄下執行hive。輸入cd/opt命令,按下Enter鍵,切換至ljopt目
錄;輸入Is命令,按下Enter鍵;在當前目錄下輸入hive命令,按下Enter鍵,同樣進入
hive>提示符下;輸入showdatabases;命令,按下Enter鋌,查看當前數據庫信息,輸
出結果報錯,顯示找不到相關的數據庫,如圖16所示。
[root@node3apache-h~ive-2.3.6-bin]"cd/6pt「
[root(?nocle3opt]#Is
)p.tar.QZindex,html
[root@node3opt]?|hive]
which:nohbase1nQ/usr/local/sbin:/usr/Iocal/bin:/usr/sbin:/usr/bin:/opt/jdkl.8.0_16
hadoop-2.9.2/sbin:/opt/zookeeper-3.4.6/bin://opt/apache-hive-2.3.6-bin/bin:/root/bin:/
in:/usr/hadoop/hadoop-2.9.2/sbin:/opt/zookeeper-3.4.6/bin:/opt/apache-hive-2.3.6-bin/b
SLF4J:classpathcontainsMultipleSLF43bindings.
SLF4J:Foundbindingin[jar:file:/opt/apache-hive-2.3.6-bin/lib/loq4j-slf4j-impl-2.6.
SLF4J:Foundbindingin[jar:file:/usr/hadoop/hadoop-2.9.2/share/hadoop/coflm?n/lib/slf
SLF4J:seehttp://www.slf4i.org/codes.html#mult1ple_bindingsforanexplanation.
SLF4J:Actualbindingisortype[org.apache.logging.slf4j.Log4jLoggerFactory]
LogginginitiaHzedusingconfigurationinjar:file:/opt/apache-hive-2.3.6-bin/lib/hiv
Hive-on-MRisdeorecatedinHive2andmaynotbeavailableinthefutureversions,co
hive>showdatabases;
FAILED:semanticExceptionorg.apache.hadoop.hive.ql.metadata.HiveException:java.lang.
hive>■
圖16直看當前數據庫信息
輸入quit;命令,按卜Enter鍵退出;然后輸入Is命令,按卜Enter鍵,食看當前目
英opt》的信息我們會發現在當前目錄下也產生了derby.log日志文件和metastore_db
目錄。也就是說通過這種默認的元數據的方式無論在哪個目錄下執行hive腳本,都會在當
前的目錄下創建相應的元數據的目錄,并且在該目錄下直找Hive元數據的信息。由于當前
的opt目錄下沒有執行元數據的初始化所以生成的metastore.db目錄中的信息是空的,
也就導致之前執行showdatabases;命令時會報錯。而在Hive的安裝目錄
(apache-hive-2.3.6-bin)下的metastore.db目錄執行過元數據的初始化操作,所以
metastore_db目錄中有相應的表,那么執行showdatabases;命令時就能查到相應的庫
信息。
從上面的操作中可以看出,采用默認的方式使用Hive是非常不方便的,這種方式限定
了只能在一個固定的目錄下執行hive的腳本服務。基于上述原因,我們還需要對Hive的
元數據做進一步的配置,以便更便捷地應用Hive技術。
在進行元數據庫具體的配置工作之前我們先了解一些基礎知識,首先通過如下所示的表
2來了解一下Hive元數據庫設置的相關信息。
表2Hive元數據庫設置
屬性名稱類型默認值描述
hive.metastore.warehouse.dirURI/user/hive/warehouse托管表存儲位置
逗號分隔如果未設定,則使用
hive.metastore.uris的URI未設定當前的metastore
jdbc:derby:;database
javax.jdo.option.ConnectionURLURImetastore數據庫
Name=metastore_db;
的JDBCURL
create=true
org.apache.derbty.jdbJDBC驅動器的類
javax.jdo.option.ConnectionDriverName字符串
c.EmbeddedDriver名
javax.jdo.option.ConnectionUserName字符串略JDBC用戶名
javax.jdo.option.ConnectionPassword字符串略JDBC密碼
Hive提供了多種方式對元數據庫進行配置,通常在生產環境中使用的方式需要配置相
應的參數,主要是通過JDBC的方式配置連接信息。如表中的第三行所示,即配置
javax.jdo.option.ConnectionURL參數,通過JDBC的方式連接Hive,會在里面配置連接
的數據庫、數據庫的名楸口數據庫的類型等信息。然后還需要配置數據庫連接的驅動類、配
置連接的用戶名和密碼等參數。這些參數配置好之后再使用Hive的時候,就會通過JDBC
的方式查找元數據庫的位置,不再依賴當前目錄的方式了。在生產環境下使用這種方式配置
元數據庫會更加便捷。
下面我們再通過如下所示的圖17來了解一下Hive元數據庫的三種配置方式。
EmbeddedHiveServiceJVM
metastore
Local
metastore
Remote
metastore
圖17Hive元數據庫的三種配置方式
前面我們在配置Hive時采用的默認方式就是圖中所示的第一種方式Embedded
metastore,即嵌入式元數據的方式,使用derby的默認方式,在執行腳本的當前目錄下
杳找元數據庫信息。
第二種方式是Localmetastore,即本地模式,這種方式需要配置一個單獨的元數據庫,
通常這個數據庫會采用MySQL,然后在Hive的配置文件中配置相應的元數據庫信息,如
表2中提到的4個參數。配置好之后在任何目錄下使用Hive的時候都會根據配置的參數直
找數據庫,從而獲得元數據信息。這種方式使用起來相對會更加靈活,但會有一個問題,就
是只能在本機上使用,因為它的元數據信息是在本機的配置文件里面記錄的。
如果需要在集群環境下使用Hive,最好配置為圖中所示的第三種方式Remote
metastore即遠程服務器的方式。這種方式也需要有一個MySQL數據庫來充當元數據庫,
然后需要額外在集群中的一臺機器上配置元數據庫的配置信息,配置好之后在這臺服務器上
啟動一個元數據服務,這時候這臺主機就充當了元數據的服務器,集群中的其他機器都是通
過客戶端的方式來連接元數據Server,并通過連接元數據Server來訪問MySQL中的元數
據服務。這時候就可以通過遠程的方式來訪問,并且集群中有一臺機器是充當元數據服務器
的,其他機器是元數據的客戶端。
我們可以通過如下所示的圖18來理解元數據庫Server的配置。
HiveCU
MetaStoreMetaStoreServerMySQL
Client(Thrift)
Server
圖18元數據庫Server配置圖示
在Hive服務器端通過hive-servicemetastore命令啟動元數據庫服務,其他充當
Hive客戶端的機器上在hive-site.xml文件中配置hive.metastore.uris,即配置元數據庫
服務器的連接地址。然后通過ThriftRPC協議訪問這個元數據庫的信息。
下面我們通過實際操作來具體演示元數據庫的另外兩種配置方式。
(1)利用MySQL本地數據庫配置Hive
打開Linux客戶端工具,切換到主機(nodel),這臺主機還沒有安裝
Hive,所以無法使用Hive,下面我們在這臺主機上安裝Hive.
依然是到Hive的官網復制安裝包地址鏈接,然后返回客戶端工具窗口,輸入wget命
令,并粘貼剛剛復制的安裝包地址鏈接,即完整命令為wgethttp:
///hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz,按下Enter鍵,下載
Hive安裝包,如圖19、圖20所示。
Indexof/hive/hive-2.3.6
NameLasttrodifi—dSiz?Description
q
ParentDirectory-
片|apache-hive-2.3.6-bin.jar.工|2019-08-2211:53221M
aDache-hive-2.3.6-sr<^Jlr.2019-08-2211:53201
Apache/2.4.29(Ubuntu)ServeratPort30
圖19復制安裝包地址鏈接
[ro
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年關于格式合同的法律規制與挑戰
- 2025混凝土拌合站租賃合同范本
- 2025年橋梁工程試題
- 2025年腸梗阻理論試題
- 幼兒園語言教育與活動設計 課件 第6、7章 幼兒園語言教育活動實施的價值取向與反思;幼兒園語言教育活動中的教師與幼兒
- 高三高考數學知識點總結
- 保險-72名億萬富翁死亡的背后
- 縱隔疝的臨床護理
- 火災應急流程制作指南
- 某咨詢-北京世博偉業房地產0806一階段人力資源診斷報告
- 第18課《井岡翠竹》課件-2024-2025學年統編版語文七年級下冊
- 【MOOC】《思想道德與法治》(東南大學)章節中國大學慕課答案
- 卜算子-送鮑浩然之浙東課件
- 上海市社區工作者管理辦法
- 顱腦損傷患者護理查房課件
- 口腔疾病與全身系統性疾病的關系課件
- 年產16萬噸焦油焦油車間蒸餾工段工藝初步設計 畢業設計
- 霍亂弧菌實驗室檢測PPT
- 五年級下學期信息技術3Done三維制作蘿卜課件
- DB51∕T 2858-2021 農業科技成果效益計算方法及規程
- 監控系統投標書(施工組織設計)
評論
0/150
提交評論