本書是大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)校企合作系列教材之一,采用模塊化的編寫思路,內(nèi)容包括Hive概述、環(huán)境準(zhǔn)備、Hadoop搭建和配置、安裝Hive的基礎(chǔ)操作、HiveQL的數(shù)據(jù)定義、HiveQL語句、Hive綜合應(yīng)用7個單元和25個教學(xué)任務(wù)。每個單元通過學(xué)習(xí)目標(biāo)引出單元的教學(xué)核心內(nèi)容,明確教學(xué)任務(wù)。每個任務(wù)的編寫分為任務(wù)目標(biāo)、知識學(xué)習(xí)、任務(wù)實施、同步訓(xùn)練4個環(huán)節(jié)。*后通過單元小結(jié)回顧每個單元的學(xué)習(xí)重點。本書適合作為高職院校軟件技術(shù)、大數(shù)據(jù)技術(shù)及應(yīng)用專業(yè),以及計算機類相關(guān)專業(yè)的教材,也可以作為Hive愛好者的參考用書。
Hive基于Hadoop環(huán)境進行存儲,Hadoop目前只能依托于Linux系統(tǒng)進行搭建。因為編譯Hive時會調(diào)用Shell,Windows本身不支持Shell的調(diào)用;Hive還需要JDK和MySQL數(shù)據(jù)庫的支持,Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,它不提供數(shù)據(jù)存儲功能也不進行分布式計算框架和資源調(diào)度系統(tǒng)。Hive使用HDFS做數(shù)據(jù)存儲,并且將SQL語句翻譯成MapReduce程序來調(diào)用;Hive本身不進行資源調(diào)度系統(tǒng),而是通過YARN集群進行的,將數(shù)據(jù)的結(jié)構(gòu)化映射成一張數(shù)據(jù)庫表和Hive SQL的查詢功能。
Hive中需要數(shù)據(jù)庫的支持,本書對數(shù)據(jù)庫中的增、減、刪、改基本命令進行詳細(xì)介紹,包括表的調(diào)用、整改、權(quán)限管理、正則表達式、GROUP BY、字符串及一些簡單的命令符號。在講述Hive的同時還對JDK環(huán)境變量、Hadoop環(huán)境、HBase搭建、MySQL數(shù)據(jù)庫進行簡單描述。
本書采用模塊化的編寫思路,內(nèi)容包括Hive概述、環(huán)境準(zhǔn)備、Hadoop搭建與配置、安裝Hive的基礎(chǔ)操作、HiveQL的數(shù)據(jù)定義、HiveQL語句、Hive與企業(yè)接軌這7個方面,共計25個教學(xué)任務(wù)。每個單元通過學(xué)習(xí)目標(biāo)引出單元的教學(xué)核心內(nèi)容,明確教學(xué)任務(wù)。每個任務(wù)的編寫分為任務(wù)目標(biāo)、知識學(xué)習(xí)、任務(wù)實施、同步訓(xùn)練4個環(huán)節(jié)。
● 任務(wù)目標(biāo):簡述本任務(wù)將要達到的效果,提高學(xué)生學(xué)習(xí)興趣。
● 知識學(xué)習(xí):詳細(xì)講解知識點,通過系列實例實踐,邊學(xué)邊做。
● 任務(wù)實施:通過任務(wù)綜合應(yīng)用所學(xué)知識,提高學(xué)生系統(tǒng)運用知識的能力。
● 同步訓(xùn)練:在任務(wù)實施的基礎(chǔ)上通過學(xué)仿做達到理論與實踐的統(tǒng)一、知識內(nèi)化的教學(xué)目的。
后通過單元小結(jié),總結(jié)本單元的教學(xué)重點與難點。
本教材建議授課49學(xué)時,教學(xué)單元與學(xué)時安排如下表所示。
教學(xué)單元與學(xué)時安排
序號 單元名稱 學(xué)時安排
1 單元1Hive概述 3
2 單元2環(huán)境準(zhǔn)備 6
3 單元3Hadoop搭建和配置 4
4 單元4安裝Hive的基礎(chǔ)操作 14
5 單元5HiveQL的數(shù)據(jù)定義 6
6 單元6HiveQL語句 10
7 單元7Hive綜合應(yīng)用 6
學(xué)時總計 49
本書是大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)校企合作系列教材,開發(fā)了豐富的數(shù)字化教學(xué)資源,可使用的教學(xué)資源如下表所示。
課程教學(xué)資源一覽表
序號 資源名稱 表現(xiàn)形式與內(nèi)涵
1 課程簡介 Word文檔,包括對課程內(nèi)容簡單介紹和對課時、適用對象等項目的介紹,讓學(xué)生對Hive有簡單的認(rèn)識
2 課程標(biāo)準(zhǔn) Word文檔,包括課程定位、課程目標(biāo)要求以及課程內(nèi)容與要求,可供教師備課時使用
3 授課視頻 MP4視頻文件,可幫助教師教好Hive這門課
4 微課 MP4視頻文件,幫助學(xué)習(xí),理解學(xué)習(xí)內(nèi)容
5 電子課件 PPT文件,也可根據(jù)教師實際需要加以修改后使用
6 案例 Tar包,包括單元項目案例和綜合案例,綜合運用所學(xué)的知識
7 習(xí)題庫、試卷庫 Word文檔,習(xí)題包括理論習(xí)題和操作習(xí)題,試卷包括單元測試和課程測試。通過練習(xí)和測試,加深學(xué)生對知識的掌握程度
8 附書源碼 Tar包,包括本書中所有例題和任務(wù)的源代碼
本書配套的資源包、運行腳本、教學(xué)課件等,可登錄http://www.1daoyun.com下載。相關(guān)軟件的安裝文件、配置文件的源代碼文件、相關(guān)程序的源代碼文件及課件也可以從http://www.tdpress.com/51eds/網(wǎng)址下載。
本書由朱曉彥、方明清、李強任主編,王慶宇、周連兵、李自臣任副主編,并聯(lián)合江蘇一道云科技發(fā)展有限公司共同編寫而成。由于編者水平有限,不足之處在所難免,懇請各位讀者給予批評、指正,編者將不勝感激。
編者
2020年6月
單元1 Hive概述1
任務(wù)1.1 Hive的產(chǎn)生背景1
1 Hive的產(chǎn)生背景2
2 Hive的發(fā)展歷史和現(xiàn)狀4
3 Hive與Hadoop4
任務(wù)1.2 Hive的概念9
1 Hive的系統(tǒng)與部署架構(gòu)9
2 Hive與RDBM對比12
3數(shù)據(jù)倉庫的理解12
4 Hive的數(shù)據(jù)模型15
5 HiveQL與數(shù)據(jù)存儲16
任務(wù)1.3 Hadoop生態(tài)與Hive20
1 Pig20
2 HBase21
單元小結(jié)25
單元2 環(huán)境準(zhǔn)備26
任務(wù)2.1 VMware與SecureCRT Portable26
1 VMware簡介26
2 VMware的虛擬化27
任務(wù)2.2 JDK的配置37
1 JDK的簡介37
2 JDK的版本37
3上傳JDK的介質(zhì)37
4 tar的解壓與壓縮37
任務(wù)2.3 免密登錄41
1 免密登錄用戶41
2免密登錄的優(yōu)點42
單元小結(jié)46
單元3 Hadoop搭建和配置47
任務(wù)3.1 Hadoop搭建47
1上傳Hadoop的介質(zhì)47
2解壓Hadoop壓縮包48
3配置Hadoop的環(huán)境變量48
4配置Hadoop環(huán)境變量48
5修改Hadoop的配置文件49
6啟動Hadoop服務(wù)51
7檢查Hadoop的成功52
任務(wù)3.2 Hadoop配置57
1 Hadoop簡介57
2 MapReduce綜述61
單元小結(jié)70
單元4 安裝Hive的基礎(chǔ)操作71
任務(wù)4.1 Hive的模式71
1本地模式72
2遠程模式72
3內(nèi)嵌模式73
任務(wù)4.2 安裝Hive實驗88
1 Hive簡介88
2 Hive的定義88
3設(shè)計特征88
4數(shù)據(jù)存儲89
任務(wù)4.3 Hive命令95
1創(chuàng)建表語句95
2加載數(shù)據(jù)96
3改變表98
4替換101
5刪除表102
6分區(qū)103
任務(wù)4.4 Hive命令行界面107
1 CLI選項107
2變量和屬性111
3在Hive內(nèi)使用Hadoop的DFS命令112
任務(wù)4.5 數(shù)據(jù)類型和文件格式114
1基本數(shù)據(jù)類型114
2文件格式116
3壓縮編碼119
4集合數(shù)據(jù)類型121
任務(wù)4.6 Hive權(quán)限管理125
1開啟權(quán)限126
2權(quán)限操作128
任務(wù)4.7 Hive常用優(yōu)化方法137
1控制Reducer數(shù)量137
2使用Map Join138
3使用distinct union all 代替union139
4解決數(shù)據(jù)傾斜的通用方法140
單元小結(jié)141
單元5 HiveQL的數(shù)據(jù)定義143
任務(wù)5.1 HiveQL的數(shù)據(jù)定義143
1 HiveQL的數(shù)據(jù)定義143
2 HiveQL和SQL的區(qū)別146
任務(wù)5.2 Hive數(shù)據(jù)庫150
1 Hive的數(shù)據(jù)庫150
2修改數(shù)據(jù)庫屬性151
任務(wù)5.3 修改表157
1增加、修改和刪除表分區(qū)157
2表重命名157
3增加列157
4刪除或者替換列157
5修改表屬性158
6修改存儲屬性158
7修改表語句158
單元小結(jié)162
單元6 HiveQL語句163
任務(wù)6.1 SELECT、FROM語句的概念163
1使用正則表達式來指定列163
2使用列值進行計算165
3算術(shù)運算符165
4使用函數(shù)168
5 LIMIT語句169
6列的別名169
7 CASE、WHEN、THEN句式169
8嵌套SELECT語句172
任務(wù)6.2 GROUP BY178
任務(wù)6.3 抽樣查詢180
1數(shù)據(jù)塊抽樣180
2分桶表的輸入裁剪180
任務(wù)6.4 WHERE語句181
1謂語操作符182
2浮點數(shù)比較183
任務(wù)6.5 JOIN語句184
1 JOIN優(yōu)化185
2 LEFT OUTER JOIN186
3 INNER JOIN187
4 FULL OUTER JOIN189
5 LEFT SEMIJOIN189
6 RIGHT OUTER JOIN190
7 OUTER JOIN190
8笛卡兒積JOIN191
9 mapsidejoin192
單元小結(jié)194
單元7 Hive綜合應(yīng)用195
任務(wù)7.1 Hive和亞馬遜網(wǎng)絡(luò)服務(wù)系統(tǒng)(AWS)195
1彈性MapReduce的優(yōu)點196
2注意事項196
3 EMR上的實例196
任務(wù)7.2 Hive綜合案例199
1 Hive操作演示199
2交易數(shù)據(jù)演示207
單元小結(jié)227
參考文獻228