版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程名稱:Hadoop大數(shù)據(jù)開(kāi)發(fā)基礎(chǔ)
章節(jié)名稱:Hadoop大數(shù)據(jù)倉(cāng)庫(kù)工具Hive
北京智酷道捷教育科技有限公司
年月
目錄
一、基本說(shuō)明...................................................................2
二、教學(xué)目標(biāo)...................................................................2
三、教學(xué)重點(diǎn)...................................................................2
四、教學(xué)難點(diǎn)....................................................................3
五、教學(xué)方法....................................................................3
六、教學(xué)準(zhǔn)備....................................................................3
七、教學(xué)過(guò)程....................................................................3
八、板書(shū)削..................................................................17
九、教具......................................................................18
十、教學(xué)反思..................................................................18
一、基本說(shuō)明
1.授課班級(jí):
2.授課人數(shù):
3.教學(xué)時(shí)間:
4.課時(shí):6課時(shí)
5.課型:理論+實(shí)踐
二、教學(xué)目標(biāo)
1.知識(shí)與技能
>通過(guò)學(xué)習(xí)本課程,學(xué)生能夠理解Hive的組件架構(gòu)和體系結(jié)構(gòu)。
>通過(guò)學(xué)習(xí)本課程,學(xué)生能夠掌握Hive表的創(chuàng)建和相關(guān)操作。
>通過(guò)學(xué)習(xí)本課程,學(xué)生能夠掌握分區(qū)表和分桶技術(shù)的使用。
2.過(guò)程與方法
>通過(guò)學(xué)習(xí)本課程并完成相關(guān)練習(xí),學(xué)生能夠熟練搭建Hive及其各個(gè)組件。
>通過(guò)學(xué)習(xí)本課程并完成相關(guān)練習(xí),學(xué)生能夠掌握自定義函數(shù)UDF的編寫(xiě)。
3.情感、態(tài)度、價(jià)值觀
>通過(guò)探究學(xué)習(xí)Hive的組件架構(gòu)和體系結(jié)構(gòu),并掌握Hive的安裝配置及Hive表的
相關(guān)操作,學(xué)生可以對(duì)Hadoop大數(shù)據(jù)倉(cāng)庫(kù)工具Hive形成整體認(rèn)識(shí),進(jìn)一步了解
它分析存儲(chǔ)在Hadoop中的大規(guī)模數(shù)據(jù),并進(jìn)行ETL操作(提取、轉(zhuǎn)化、加載)的
原理及應(yīng)用。
三、教學(xué)重點(diǎn)
>Hive表的操作案例演示。
>Hive表的操作案例練習(xí)。
AHive函數(shù)。
AUDF開(kāi)發(fā)案例演示。
>UDF案例編程練習(xí)。
四、教學(xué)難點(diǎn)
>無(wú)。
五、教學(xué)方法
>邊講邊練+實(shí)戰(zhàn)演練:首先老師可以邊講邊練的方式對(duì)Hive進(jìn)行整體介紹,并介紹
Hive的安裝配置、Hive表的相關(guān)操作及Hive自定義函數(shù)的編寫(xiě)。最后,老師可以
通過(guò)兩個(gè)案例直觀演示Hive表的操作和UDF的開(kāi)發(fā),讓大家能夠掌握Hadoop大
數(shù)據(jù)倉(cāng)庫(kù)工具Hive的使用。
六、教學(xué)準(zhǔn)備
1.學(xué)生準(zhǔn)備
>注冊(cè)道捷實(shí)訓(xùn)云賬號(hào)并開(kāi)通會(huì)員。
>虛擬機(jī)軟件vmware。
>IDEA開(kāi)發(fā)工具。
2.教師準(zhǔn)備
>注冊(cè)道捷實(shí)訓(xùn)云賬號(hào)并開(kāi)通會(huì)員。
>虛擬機(jī)軟件vmware。
>IDEA開(kāi)發(fā)工具。
七、教學(xué)過(guò)程
1,導(dǎo)入新課
(1)回顧上節(jié)課內(nèi)容并答疑解惑
回顧上一節(jié)課的內(nèi)容,并對(duì)上一節(jié)課布置的作業(yè)以及學(xué)生提出的問(wèn)題進(jìn)行答疑解惑。
(2)進(jìn)入主題,展開(kāi)詳細(xì)講解
本節(jié)課分為4部分,第1部分對(duì)Hive進(jìn)行了整體介紹,包括Hive的概念、Hive與關(guān)
系型數(shù)據(jù)庫(kù)的異同、Hive的組件以及體系結(jié)構(gòu)等,讓我們能夠?qū)ive技術(shù)有一個(gè)宏觀的了
解。第2部分介紹了Hive的安裝配置,包括Hive的安裝流程和各個(gè)組件的詳細(xì)配置情況,
以便為后面的學(xué)習(xí)和應(yīng)用打好基礎(chǔ)。第3部分介紹了Hive表的相關(guān)操作,包括一些優(yōu)化的
技術(shù)、分區(qū)表和分桶技術(shù)等,并通過(guò)具體實(shí)例對(duì)Hive表的操作進(jìn)行了演示。第4部分介紹
了Hive自定義函數(shù)的編寫(xiě),也通過(guò)具體的UDF開(kāi)發(fā)案例進(jìn)行了演示。
(3)明確學(xué)習(xí)目標(biāo)
>理解Hive的組件架構(gòu)和體系結(jié)構(gòu)。
>能夠熟練搭建Hive及其各個(gè)組件。
>掌握Hive表的創(chuàng)建和相關(guān)操作。
>掌握分區(qū)表和分桶技術(shù)的使用。
>掌握自定義函數(shù)UDF的編寫(xiě)。
2.講授課程
(1)Hive介紹
本節(jié)課我們學(xué)習(xí)Hadoop大數(shù)據(jù)倉(cāng)庫(kù)工具Hive,首先要了解其概念、組件、體系結(jié)構(gòu)
以及應(yīng)用等。
1)什么是Hive
定義:
Hive是基于Hadoop的數(shù)據(jù)倉(cāng)庫(kù)工具,可以用來(lái)對(duì)存儲(chǔ)在Hadoop中的大規(guī)模數(shù)據(jù)
進(jìn)行ETL操作(提取、轉(zhuǎn)化、加載)。
起源:
?MapReduce實(shí)現(xiàn)復(fù)雜查詢邏輯開(kāi)發(fā)難度太大
?為了讓熟悉SQL但編程技能相對(duì)比較薄弱的分析人員可對(duì)存儲(chǔ)在HDFS中的大數(shù)據(jù)
集進(jìn)行查詢分析。
主要功能:
可以將結(jié)構(gòu)化、半結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供類SQL查詢功能
2)Hive與關(guān)系型數(shù)據(jù)庫(kù)的差異
區(qū)別Hive關(guān)系型數(shù)據(jù)庫(kù)
查詢語(yǔ)言HQLSQL
數(shù)據(jù)存儲(chǔ)位置HDFS本地文件系統(tǒng)
數(shù)據(jù)格式判斷查詢時(shí)判斷插入時(shí)判斷
執(zhí)行MRExecutor
執(zhí)行延遲高低
處理數(shù)據(jù)規(guī)模大小
3)Hive組件總體框圖
4)Hive的體系結(jié)構(gòu)
HiveclientsHiveservicesHive存1諸和計(jì)算
5)Hive的應(yīng)用
一是數(shù)據(jù)倉(cāng)庫(kù)ETL任務(wù),當(dāng)然這個(gè)數(shù)據(jù)倉(cāng)庫(kù)是指大數(shù)據(jù)的數(shù)據(jù)倉(cāng)庫(kù);
二是對(duì)網(wǎng)站日志的分析,因?yàn)楝F(xiàn)在互聯(lián)網(wǎng)公司非常多,互聯(lián)網(wǎng)的訪問(wèn)數(shù)據(jù)量也非常大,
所以也需要通過(guò)Hive進(jìn)行數(shù)據(jù)分析;
三是海量數(shù)據(jù)的離線分析,也就是只要適合MapReduce工作的場(chǎng)景,一般Hive都會(huì)
適用。
(2)Hive的安裝配置
1)安裝Hive
第一步,確定Hive的版本。因?yàn)镠ive是在Hadoop上使用的,所以Hive的版本需
要與當(dāng)前使用的Hadoop版本匹配。
第二步,解壓安裝包。下載匹配的Hive版本后要解壓安裝包,解壓命令為tarxzf
apache-hive-x.y.z-bin.tar.gzo
第三步,設(shè)置環(huán)境變量。首先配置HIVE_HOME環(huán)境變量為exportHIVE_HOME={$
裝目錄路徑};然后將HIVE_HOME下的bin目錄配置到PATH目錄下,具體為export
PATH=$PATH:$HIVE_HOME/bino
2)元數(shù)據(jù)庫(kù)設(shè)置
?屬性設(shè)置
屬性名稱類型默認(rèn)值描述
hive.metastore.warehouse.dirURI/user/hive/warehouse托管表存儲(chǔ)位置
逗號(hào)分隔如受未設(shè)定廁使用
hive.metastore.uris的URI未設(shè)定當(dāng)前的metastore
jdbc:derby:;database
javax.jdo.option.ConnectionURLURImetastore數(shù)據(jù)庫(kù)
Name=metastore_db;
的JDBCURL
create=true
org.apache.derbty.jdbJDBC驅(qū)動(dòng)器的類
javax.jdo.option.ConnectionDriverName字符串
c.EmbeddedDriver名
javax.jdo.option.ConnectionUserName字符串略JDBC用戶名
javax.jdo.option.ConnectionPassword字符串略JDBC密碼
?三種配置方式
Embedded
metastore
LocalHiveServiceJVM
metastore
DriveraMetastore
HiveServiceJVM
Driver>Metastore
RemoteHiveServiceJVM
metastore
第一種方式Embeddedmetastore,即嵌入式元數(shù)據(jù)的方式,使用derby的默認(rèn)方
式,在執(zhí)行腳本的當(dāng)前目錄下查找元數(shù)據(jù)庫(kù)信息。
第二種方式是Localmetastore,即本地模式,這種方式需要配置一個(gè)單獨(dú)的元數(shù)據(jù)庫(kù),
通常這個(gè)數(shù)據(jù)庫(kù)會(huì)采用MySQL,然后在Hive的配置文件中配置相應(yīng)的元數(shù)據(jù)庫(kù)信息。
第三種方式Remotemetastore即遠(yuǎn)程服務(wù)器的方式。這種方式也需要有一個(gè)MySQL
數(shù)據(jù)庫(kù)來(lái)充當(dāng)元數(shù)據(jù)庫(kù),然后需要額外在集群中的一臺(tái)機(jī)器上配置元數(shù)據(jù)庫(kù)的配置信息。
?元數(shù)據(jù)庫(kù)Server配置
在Hive服務(wù)器端通過(guò)hive-servicemetastore命令啟動(dòng)元數(shù)據(jù)庫(kù)服務(wù),其他充當(dāng)
Hive客戶端的機(jī)器上在hive-site.xml文件中配置hive.metastore.uris,即配置元數(shù)據(jù)庫(kù)
服務(wù)器的連接地址。然后通過(guò)ThriftRPC協(xié)議訪問(wèn)這個(gè)元數(shù)據(jù)庫(kù)的信息。
HiveCU
MetaStoreMetaStoreServerMySQL
Client(Thrift)
Server
3)關(guān)于HiveWebInterface
HiveWebInterface組件簡(jiǎn)稱HWI,是指通過(guò)瀏覽器以圖形化的方式來(lái)使用Hive。
HiveWebInterface組件只在Hive2.2.0之前版本可用,目前在Hive2.3版本已被棄用,
棄用的原因是Hive官方認(rèn)為這個(gè)組件使用的人數(shù)比較少,維護(hù)該組件的意義不大,所以就
取消了這個(gè)組件。
4)配置使用Hcatalog
?配置Hcatalog
酉己置hcat_server.sh:
位于{$HIVE_HOME}/hcatalog/sbin/
exportHCAT_LOG_DIR={目錄路徑}
啟動(dòng)hcatalog服務(wù):
{$HIVE_HOME}/hcatalog/sbin/hcat_server.shstart
停止hcatalog服務(wù):
{$HIVE_HOME}/hcatalog/sbin/hcat_server.shstop
?HCatalog組件的優(yōu)點(diǎn)
?使用HCatalog有助于與其他工具的集成,并為Pig、Hive和MapReduce提供讀
寫(xiě)接口訪問(wèn)元數(shù)據(jù)信息。
?HCatalog還提供了Restful接口,方便用于外部數(shù)據(jù)的訪問(wèn)。
?HCatalog還與Sqoop框架進(jìn)行了集成,Sqoop是一種用于Hadoop和關(guān)系型數(shù)
據(jù)庫(kù)之間傳輸數(shù)據(jù)的工具。
?WebHCat組件
WebHCat組件的使用方法如下。
啟動(dòng)WebHCat服務(wù):{$HIVE_HOME}/hcatalog/sbin/webhcat_server.shstart
通瀏覽器訪問(wèn)測(cè)試:http:〃{主機(jī)名}:50111/templeton/vl/status
可以通過(guò)如下所示的圖來(lái)了解WebHCat組件的工作流程。
?HCatalog組件的應(yīng)用
?打開(kāi)Linux客戶端工具,通過(guò)netstat-na|grep9083命令查看一下9083端口是
否開(kāi)啟。
?通過(guò)hcat_server.sh腳本開(kāi)啟HCatalog服務(wù)。這里需要對(duì)該腳本進(jìn)行適當(dāng)?shù)木庉?
可以輸入vihcat_server.sh命令,按下Enter鍵,在該腳本中添加一句話:export
HCAT_LOG_DIR=opt/apache-hive-2.3.6-bin/hcatalog/logso
?輸入.hcat_server.shstart命令,按下Enter鍵,啟動(dòng)成功。
5)配置hiveserver2和beeline
啟動(dòng)hiveserver2服務(wù):
{$HIVE_H0ME}/bin/hiveserver2
使用beeline:
{$HIVE_HOME}/bin/beeline-ujdbc:hive2:〃{主機(jī)名}:10000
酉己置hadoop中的core-site.xml:
設(shè)置代理用戶root在hadoop中的執(zhí)行權(quán)限。
(3)Hive表的操作
1)Hive表的類型
Hive表分為四種類型,分別是內(nèi)部表、外部表、分區(qū)表和分桶表,下面分別講解其特
點(diǎn)。
內(nèi)部表指的是使用命令創(chuàng)建表之后需要通過(guò)一些腳本語(yǔ)句加載數(shù)據(jù)文件到表中,這樣才
能查到數(shù)據(jù)。當(dāng)刪除表的時(shí)候除了會(huì)將表的定義從元數(shù)據(jù)中刪除之外,還會(huì)把表的數(shù)據(jù)一并
刪除,所以在內(nèi)部表中表的數(shù)據(jù)是受Hive本身控制的,因此內(nèi)部表又稱為受控表。
外部表是指當(dāng)創(chuàng)建表的時(shí)候數(shù)據(jù)文件已經(jīng)存在,創(chuàng)建表的時(shí)候只需要指定數(shù)據(jù)文件的路
徑就可以把數(shù)據(jù)從表中查詢出來(lái),當(dāng)刪除表的時(shí)候并不會(huì)刪除關(guān)聯(lián)的數(shù)據(jù)文件。外部表通常
會(huì)用在數(shù)據(jù)共享的場(chǎng)合。
分區(qū)表是指當(dāng)單表的數(shù)據(jù)量非常大的時(shí)候,可以通過(guò)一個(gè)分區(qū)字段或者多個(gè)分區(qū)字段對(duì)
數(shù)據(jù)進(jìn)行分區(qū)存儲(chǔ),并且指定的分區(qū)字段值不相同的話,對(duì)應(yīng)的記錄就會(huì)存儲(chǔ)在不同的目錄
下,這樣可以提高查詢的性能。
分桶表是指對(duì)數(shù)據(jù)進(jìn)行更細(xì)粒度的劃分,可以按照某列屬性值的Hash值對(duì)數(shù)據(jù)進(jìn)行區(qū)
分。分桶表一般是和分區(qū)表配合使用的,主要用在數(shù)據(jù)抽樣和表關(guān)聯(lián)查詢的場(chǎng)合。
2)Hive的數(shù)據(jù)類型
?Hive的基本數(shù)據(jù)類型
數(shù)據(jù)類型所占字節(jié)
TINYINTlbyte,-128-127
SMALLINT2byte,-32,768-32,767
INT4byte,-2,147,483,648-2,147,483,647
BIGINT8byte,-9,223,372,036,854,775,808~9,223,372,036,854,775,807
BOOLEAN
FLOAT
DOUBLE
STRING
BINARY
TIMESTAMP
DECIMAL
CHAR
VARCHAR
DATE
?Hive的復(fù)雜數(shù)據(jù)類型
除了常用的基本數(shù)據(jù)類型之外,Hive還提供了一些復(fù)雜數(shù)據(jù)類型加array類型、m叩
類型、struct類型、union類型等。
3)Hive基本建表語(yǔ)句
CREATE[EXTERNAL]table[表名]
([列名列數(shù)據(jù)類型,.…])
ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'
STOREDASTEXTFILE
[LOCATIONhdfs_path]
createexternaltableifnotexistsemployee__external(
namestring,
workplacearray<string>>
sex_agestruct<sex:string,age:int>,
skills_scoremap<string,int>,
depart_titlemap<string,array<string>>
)
rowformatdelimited
fieldsterminatedby*|*
collectionitemsterminatedby
mapkeysterminatedby*:*
storedastextfile
location■/temp/dat“employee?
4)Hive表加載數(shù)據(jù)
建表完成后需要將數(shù)據(jù)加載到Hive表,Hive提供了loaddata語(yǔ)句和insert語(yǔ)句進(jìn)
行數(shù)據(jù)加載操作。loaddata語(yǔ)句可以將數(shù)據(jù)從本地文件系統(tǒng)中加載到Hive表中,也就是
Hive的數(shù)據(jù)是存儲(chǔ)在分布式文件系統(tǒng)中的,同時(shí)它也可以將分布式文件系統(tǒng)中的數(shù)據(jù)加載
到Hive表對(duì)應(yīng)的目錄下。insert語(yǔ)句能夠進(jìn)行單行數(shù)據(jù)的插入和結(jié)果集數(shù)據(jù)的插入,并且
還可以做數(shù)據(jù)的導(dǎo)出工作。
5)Hive表的基本操作
?創(chuàng)建表并查詢數(shù)據(jù)
通過(guò)createtableperson(idint,namestring)rowformatdelimitedfields
terminatedby'\t'storedastextfile;語(yǔ)句來(lái)創(chuàng)建表。
輸入select*fromperson;命令可以查詢表。
?導(dǎo)入數(shù)據(jù)
?使用loaddata語(yǔ)句導(dǎo)入數(shù)據(jù)
通過(guò)loaddatalocalinpath,file:///opt/testdata/person.txt,overwriteinto
tableperson;語(yǔ)句導(dǎo)入數(shù)據(jù)。
使用insert語(yǔ)句導(dǎo)入數(shù)據(jù)
輸入insertintoperson(id,name)values(3,,wangwu');命令導(dǎo)入數(shù)據(jù)。
?使用hdfs命令導(dǎo)入數(shù)據(jù)
Hive表下的數(shù)據(jù)文件除了通過(guò)loaddata等語(yǔ)句進(jìn)行導(dǎo)入外,使用hdfs相關(guān)的命令將
數(shù)據(jù)文件放到Hive表的目錄下同樣能夠?qū)崿F(xiàn)數(shù)據(jù)導(dǎo)入的效果。
?導(dǎo)出數(shù)據(jù)
通過(guò)insertoverwrite語(yǔ)句能實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)出操作。
?復(fù)雜數(shù)據(jù)類型的使用
首先需要準(zhǔn)備一張名為student的表,建表信息如下:
CREATETABLEstudent(
idINT,
nameSTRING,
ageINT,
favARRAY<STRING>,
addrMAP<STRING,STRING>,
contactsSTRUCT<mobile:STRING,maikSTRING,qq:String>
)
ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'
COLLECTIONITEMSTERMINATEDBY'-'
MAPKEYSTERMINATEDBY
STOREDASTEXTFILE;
導(dǎo)入數(shù)據(jù)如下:
1lisi18study-game-driverstd_addr:beijing-work_addr:shanghai
lllll-test@163.com-3435455
以上就是復(fù)雜數(shù)據(jù)類型的建表語(yǔ)句和數(shù)據(jù)格式。
?Hive修改表結(jié)構(gòu)
修改Hive表結(jié)構(gòu)主要有以下三種方式:
?重命名表:ALTERTABLE表名RENAMETOnew_table_name;
?改變列名/類型:ALTERTABLE表名CHANGEcol_old_namecol_new_name
column_type;
?增加/更新列:ALTERTABLE表名ADD|REPLACECOLUMNS(col_name
datatype[CONMMENTcol_comment],...);
?Hive的CRUD操作總結(jié)
Hive支持select語(yǔ)句進(jìn)行查詢;可以通過(guò)insertinto語(yǔ)句、insertoverwrite語(yǔ)句和
loaddata語(yǔ)句進(jìn)行插入操作;至于數(shù)據(jù)的更新和刪除,只能在支持ACID的表上執(zhí)行,對(duì)
此目前我們可以理解為Hive不支持對(duì)數(shù)據(jù)的更新和刪除,后續(xù)在學(xué)習(xí)到ACID的時(shí)候再去
使用這兩個(gè)功能。
6)Hive分區(qū)表
分區(qū)表的作用:當(dāng)數(shù)據(jù)量比較大的時(shí)候一般通過(guò)建表指定分區(qū)字段,讓數(shù)據(jù)根據(jù)分區(qū)分
開(kāi)存儲(chǔ),不同分區(qū)的數(shù)據(jù)會(huì)存儲(chǔ)在不同的目錄下,這樣在查詢的時(shí)候就不用做全表掃描,根
據(jù)當(dāng)前查詢的數(shù)據(jù)分區(qū)去特定的目錄下掃描數(shù)據(jù)即可,能夠加快數(shù)據(jù)查詢的速度。在指定分
區(qū)字段的時(shí)候可以指定多個(gè),這樣可以形成多級(jí)分區(qū)的效果。
?Hive分區(qū)表建表語(yǔ)句
分區(qū)表建表語(yǔ)句與普通建表的方式大致相同,主要是通過(guò)PARTITIONEDBY(province
STRING)語(yǔ)句指定一個(gè)分區(qū)字段就可以了,完整命令行如下:
CREATETABLEperson(
idINT,
nameSTRING)
PARTITIONEDBY(provinceSTRING)
ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'
STOREDASTEXTFILE;
?Hive分區(qū)表示例
我們通過(guò)實(shí)例來(lái)體驗(yàn)一下Hive分區(qū)表的具體操作。
7)數(shù)據(jù)分桶
Hive還提供了一種建表的優(yōu)化方式,即數(shù)據(jù)分桶。數(shù)據(jù)分桶主要是利用建表時(shí)提供一
個(gè)分桶字段,這個(gè)分桶字段會(huì)與分桶的數(shù)量做模運(yùn)算,按照模運(yùn)算的值相同的數(shù)據(jù)進(jìn)行同一
個(gè)分區(qū)。
數(shù)據(jù)分桶的作用主要表現(xiàn)在兩方面,首先是方便抽樣,數(shù)據(jù)經(jīng)過(guò)模運(yùn)算之后可以將相同
的值取出來(lái)做一個(gè)桶的數(shù)據(jù),這樣就可以做一些抽樣的效果;其次可以提高join直詢效率,
由于數(shù)據(jù)分桶之后可以按照桶識(shí)別數(shù)據(jù),如果這個(gè)分桶字段在關(guān)聯(lián)的時(shí)候值相同,就會(huì)到特
定的分桶上去找關(guān)聯(lián)的數(shù)據(jù),這樣兩表所有的數(shù)據(jù)不會(huì)做完整的笛卡爾積,從而能夠大大縮
減直詢時(shí)間。
可以通過(guò)如下所示的分桶語(yǔ)句來(lái)創(chuàng)建分桶表:
CLUSTEREDBY('分桶字段INTO{分桶數(shù)量}BUCKETS
(4)Hive自定義函數(shù)
Hive自帶了一些函數(shù),可以使用在SQL語(yǔ)句中,但這些函數(shù)的數(shù)量是有限的,不能完
全滿足我們的業(yè)務(wù)需求,所以Hive也提供了自定義函數(shù)擴(kuò)展的功能.
1)Hive函數(shù)
Hive的自定義函數(shù)可以簡(jiǎn)寫(xiě)為UDF(user-definedfunction),即用戶自定義函數(shù)的
簡(jiǎn)稱。用戶自定義函數(shù)包含UDF、UDAF和UDTF三種方式。
2)UDF開(kāi)發(fā)步驟
在創(chuàng)建一個(gè)項(xiàng)目之后,實(shí)現(xiàn)org.apache.hadoop.hive.ql.UDF的子類代碼,然后在子
類里面實(shí)現(xiàn)evaluate函數(shù)就完成UDF的開(kāi)發(fā)了。
這個(gè)函數(shù)開(kāi)發(fā)完成之后要進(jìn)行打包操作,然后將jar包上傳到Hive的服務(wù)器節(jié)點(diǎn),再
通過(guò)addjarlinuxjar_path命令將jar包添加到Hive的環(huán)境中,然后再通過(guò)create
[temporary]function[dbname]function_nameASclass_name創(chuàng)建函數(shù),這樣就可以
在具體的Server上使用該函數(shù)了。
3)UDF開(kāi)發(fā)案例演示
通過(guò)一個(gè)具體的案例來(lái)演示UDF的開(kāi)發(fā)過(guò)程。在該案例中我們要開(kāi)發(fā)一個(gè)hell。。函數(shù),
該函數(shù)的功能是在一個(gè)字段前面添加hello前綴。
3.鞏固練習(xí)
(1)Hive安裝配置練習(xí)。
要求:
基于Hadoop2.x高可用集群。
(2)Hive表的操作案例練習(xí)。
要求:
1)常用數(shù)據(jù)類型和建表。
2)數(shù)據(jù)導(dǎo)入導(dǎo)出。
3)復(fù)雜數(shù)據(jù)類型和建表。
4)修改表結(jié)構(gòu)。
5)CRUD操作。
6)分區(qū)分桶表。
(3)UDF案例編程練習(xí)。
要求:
1)編寫(xiě)hello()函數(shù)。
2)在Hive下應(yīng)用編寫(xiě)的hell。。函數(shù)。
4.課堂小結(jié)
本節(jié)課從Hive的組件架構(gòu)和體系結(jié)構(gòu)入手,對(duì)Hive形成整體認(rèn)識(shí)。然后進(jìn)行了Hive
2.3.6版本的配置安裝,并對(duì)元數(shù)據(jù)服務(wù)、HCatalog服務(wù),以及基于HCatalog的WebHCat、
hiveserver2和beeline組件的搭建進(jìn)行了詳細(xì)講解。然后又介紹了各種表的操作和練習(xí),
包括基本數(shù)據(jù)類型、復(fù)雜數(shù)據(jù)類型、建表語(yǔ)句,以及使用loaddata和insert語(yǔ)句將數(shù)據(jù)
導(dǎo)入到表,還介紹了分區(qū)和分桶技術(shù)的使用.最后編寫(xiě)了UDF函數(shù),并進(jìn)行了測(cè)試應(yīng)用。
5.布置作業(yè)
(1)課下作業(yè)
編寫(xiě)一個(gè)UDF函數(shù),實(shí)現(xiàn)將輸出的字符串進(jìn)行反轉(zhuǎn)輸出。
(2)預(yù)習(xí)作業(yè)
了解Hive的UDAF和UDTF函數(shù)的編寫(xiě)。
八、板書(shū)設(shè)計(jì)
Hadoop大數(shù)據(jù)倉(cāng)庫(kù)工具Hive
L
一(―)什么是Hive
一、課程目標(biāo)
(-)Hive與關(guān)系型數(shù)據(jù)庫(kù)的差異
Hive介紹一(三)Hive組件總體框圖
(四)Hive的體系結(jié)構(gòu)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度醫(yī)療設(shè)備隱秘操作監(jiān)管規(guī)范與服務(wù)協(xié)議3篇
- 西藏農(nóng)牧學(xué)院《園藝療法概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版建筑工程施工合同履約保函
- 武漢理工大學(xué)《結(jié)構(gòu)設(shè)計(jì)原理課程設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版綜合醫(yī)療設(shè)備交易協(xié)議細(xì)則一
- 2024教育培訓(xùn)機(jī)構(gòu)合作與許可合同
- 個(gè)性化民間車輛抵押借款合同范本2024版版B版
- 二零二五年度新能源汽車充電站土地購(gòu)置協(xié)議3篇
- 天津現(xiàn)代職業(yè)技術(shù)學(xué)院《管理知識(shí)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年珠寶設(shè)計(jì)與定制生產(chǎn)合同
- 政治表現(xiàn)及具體事例三條經(jīng)典優(yōu)秀范文三篇
- 高考詩(shī)歌鑒賞專題復(fù)習(xí):題畫(huà)抒懷詩(shī)、干謁言志詩(shī)
- 2023年遼寧省交通高等??茖W(xué)校高職單招(英語(yǔ))試題庫(kù)含答案解析
- GB/T 304.3-2002關(guān)節(jié)軸承配合
- 漆畫(huà)漆藝 第三章
- CB/T 615-1995船底吸入格柵
- 光伏逆變器一課件
- 貨物供應(yīng)、運(yùn)輸、包裝說(shuō)明方案
- (完整版)英語(yǔ)高頻詞匯800詞
- 《基礎(chǔ)馬來(lái)語(yǔ)》課程標(biāo)準(zhǔn)(高職)
- IEC61850研討交流之四-服務(wù)影射
評(píng)論
0/150
提交評(píng)論