大數(shù)據(jù)Hive離線計算開發(fā)實戰(zhàn)
定 價:59 元
- 作者:楊力
- 出版時間:2020/6/1
- ISBN:9787115448088
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.13
- 頁碼:184
- 紙張:
- 版次:01
- 開本:16開
本書從數(shù)據(jù)處理平臺數(shù)據(jù)庫和數(shù)據(jù)倉庫入手,幫助讀者逐步搭建大數(shù)據(jù)Hive數(shù)據(jù)倉庫平臺,并介紹了這種傳統(tǒng)數(shù)據(jù)分析方法在大數(shù)據(jù)平臺成功應用的典型案例。本書通過對Hive數(shù)據(jù)定義語言、Hive數(shù)據(jù)操縱語言、Hive數(shù)據(jù)基本查詢、Hive數(shù)據(jù)復雜查詢的詳細介紹,全面闡述了Hive大數(shù)據(jù)平臺工具的應用與開發(fā)。另外,還介紹了Hive數(shù)據(jù)庫對象、用戶自定義函數(shù)以及Azkaban工作流作業(yè)調(diào)度器,幫助讀者掌握Hive平臺的強大功能和特性。最后,通過電商推薦系統(tǒng)、汽車銷售數(shù)據(jù)分析系統(tǒng)以及微博數(shù)據(jù)分析系統(tǒng)3個實戰(zhàn)開發(fā)項目案例,讓讀者對Hive大數(shù)據(jù)平臺數(shù)據(jù)倉庫工具的實戰(zhàn)應用有更深的理解。
1.項目經(jīng)典:深度剖析三大企業(yè)級項目實戰(zhàn)案例——電商推薦系統(tǒng)、汽車銷售數(shù)據(jù)分析系統(tǒng)、微博數(shù)據(jù)分析系統(tǒng),幫助讀者進一步提高自己;
2.詳細介紹HDFS、MapReduce、HBase、Hive、Sqoop、Spark等主流大數(shù)據(jù)工具。
進入21世紀,我們迎來了數(shù)據(jù)爆炸式增長的時代,人們計量數(shù)據(jù)的單位由GB進入到了TB、PB、EB、ZB……舉個簡單的例子,十年前或者五年前我們購買移動硬盤,它的存儲容量為80GB至500GB;現(xiàn)在我們購買移動硬盤,它的存儲容量為1TB至2TB。因此,在數(shù)據(jù)爆炸式增長的同時,我們也迎來了大數(shù)據(jù)的時代。所謂大數(shù)據(jù),簡單來講就是數(shù)據(jù)體量巨大、數(shù)據(jù)種類繁多、數(shù)據(jù)價值密度低、數(shù)據(jù)處理速度快,大數(shù)據(jù)是需要新處理模式才能具有更強大決策力、洞察力和流程優(yōu)化能力的海量、高增長率和多樣化的信息資產(chǎn)。
在過去很多年,各個企業(yè)、單位都積累了大量豐富的數(shù)據(jù),并購買服務器來存儲這些數(shù)據(jù)。數(shù)據(jù)是積累下來了,可是對于持續(xù)不斷增長的數(shù)據(jù),除了需要不斷購買服務器,花巨大的硬件成本來存儲,我們又能從這些持續(xù)不斷積累下來的數(shù)據(jù)中得到什么?如何去挖掘和利用這些數(shù)據(jù)?這些數(shù)據(jù)都是歷史數(shù)據(jù),也叫離線數(shù)據(jù),于是一個全新的技術(shù)Hive離線計算進入了大眾的視野。它提出海量數(shù)據(jù)可以繼續(xù)沿用傳統(tǒng)的數(shù)據(jù)分析方法SQL語句來處理,開發(fā)人員不需要學習新的腳本語言而繼續(xù)使用熟悉的SQL結(jié)構(gòu)化查詢語句來處理大規(guī)模的數(shù)據(jù)。區(qū)別是,此時此刻SQL語句不再運行在傳統(tǒng)的數(shù)據(jù)庫或者數(shù)據(jù)倉庫中,而是運行在大數(shù)據(jù)分布式并行計算處理平臺上。該數(shù)據(jù)平臺為我們提供了一個工具,那就是Hive離線計算處理工具,所用到的語言稱之為HiveQL查詢語言,其語法結(jié)構(gòu)與傳統(tǒng)SQL語言幾乎是一模一樣的,這就是本書將要介紹的Hive大數(shù)據(jù)離線計算的相關(guān)技術(shù)。它能解決不斷增長的海量離線數(shù)據(jù)處理計算問題,幫助企業(yè)從數(shù)據(jù)中獲取經(jīng)驗,并得到巨大的潛在商業(yè)價值。
本書將帶您認識Hive大數(shù)據(jù)離線計算的基本概念。通過學習本書,您將對Hive大數(shù)據(jù)離線技術(shù)有一個深刻的認識,并且掌握大數(shù)據(jù)技術(shù)中主流的離線計算工具Hive,再通過大數(shù)據(jù)的離線計算項目案例,讓您從Hive大數(shù)據(jù)離線計算技術(shù)的實戰(zhàn)應用中得到訓練。這也許是您學習大數(shù)據(jù)離線計算技術(shù)的最佳入門途徑之一。
楊力,原北大青鳥學術(shù)部經(jīng)理兼教學總監(jiān),中信國安創(chuàng)客霸王課特聘高級講師,現(xiàn)任北京兄弟連IT教育大數(shù)據(jù)專家級講師,一直從事大數(shù)據(jù)方向,是大數(shù)據(jù)領(lǐng)域?qū)<,資深顧問,致力于大數(shù)據(jù)技術(shù)的推廣與普及,擁有Apache Hadoop、Oracle OCM等多項產(chǎn)品的技術(shù)認證證書。曾創(chuàng)立國內(nèi)首家大數(shù)據(jù)校企合作大數(shù)據(jù)實驗室平臺,現(xiàn)已推廣至全國高校,助力高校大數(shù)據(jù)學科的建設(shè)和研究,對國內(nèi)大中型企業(yè)的信息系統(tǒng)設(shè)計與實施有豐富的實踐經(jīng)驗。曾在一線任職新奧集團大數(shù)據(jù)平臺首席架構(gòu)師,京東萬象大數(shù)據(jù)平臺締造人之一,二六三網(wǎng)絡(luò)通信反垃圾郵件系統(tǒng)數(shù)據(jù)平臺項目經(jīng)理、中信銀行網(wǎng)銀數(shù)據(jù)平臺技術(shù)經(jīng)理等要職。
目錄
第01章 數(shù)據(jù)倉庫基礎(chǔ) 1
1.1 數(shù)據(jù)處理平臺 1
1.2 數(shù)據(jù)庫 2
1.3 關(guān)系型數(shù)據(jù)庫 2
1.3.1 數(shù)據(jù)庫三范式 3
1.3.2 數(shù)據(jù)庫事務 6
1.3.3 數(shù)據(jù)庫設(shè)計理念 7
1.4 數(shù)據(jù)倉庫 7
1.4.1 無數(shù)據(jù)倉庫的時代 7
1.4.2 數(shù)據(jù)倉庫的發(fā)展 8
1.5 數(shù)據(jù)倉庫設(shè)計理念 9
1.6 數(shù)據(jù)庫與數(shù)據(jù)倉庫的不同 10
1.7 本章總結(jié) 11
1.8 本章習題 11
第02章 Hive安裝部署 12
2.1 Hive基本概念 12
2.1.1 Hive簡介 12
2.1.2 Hive設(shè)計特性 13
2.1.3 Hive與傳統(tǒng)數(shù)據(jù)庫的對比 14
2.2 Hive安裝部署 14
2.3 安裝配置MySQL 16
2.4 配置啟動Hive 22
2.5 Hive常用內(nèi)部命令 26
2.6 Hive數(shù)據(jù)類型 27
2.6.1 Hive基本數(shù)據(jù)類型 28
2.6.2 Hive集合數(shù)據(jù)類型 30
2.7 本章總結(jié) 36
2.8 本章習題 36
第03章 Hive數(shù)據(jù)定義與操作 37
3.1 HiveQL數(shù)據(jù)定義語言 37
3.1.1 創(chuàng)建數(shù)據(jù)庫 38
3.1.2 刪除數(shù)據(jù)庫 40
3.1.3 創(chuàng)建表 40
3.1.4 修改表 45
3.1.5 刪除表 46
3.1.6 分區(qū)表 47
3.2 HiveQL數(shù)據(jù)操作 53
3.2.1 向管理表中裝載數(shù)據(jù) 54
3.2.2 經(jīng)查詢語句向表中插入數(shù)據(jù) 54
3.2.3 單個查詢語句中創(chuàng)建表并加載數(shù)據(jù) 55
3.2.4 導入數(shù)據(jù) 55
3.2.5 導出數(shù)據(jù) 56
3.3 本章總結(jié) 56
3.4 本章習題 57
第04章 HiveQL數(shù)據(jù)查詢基礎(chǔ) 58
4.1 HiveQL數(shù)據(jù)查詢語句 58
4.1.1 SELECT語句 58
4.1.2 WHERE語句 59
4.1.3 GROUP BY語句 60
4.1.4 HAVING分組篩選 61
4.1.5 ORDER BY 語句和
SORT BY語句 62
4.2 HiveQL連接查詢語句 64
4.3 本章總結(jié) 70
4.4 本章習題 70
第05章 HiveQL數(shù)據(jù)查詢進階 71
5.1 Hive內(nèi)置函數(shù) 71
5.1.1 數(shù)學函數(shù) 72
5.1.2 字符函數(shù) 74
5.1.3 轉(zhuǎn)換函數(shù) 76
5.1.4 日期函數(shù) 76
5.1.5 條件函數(shù) 77
5.1.6 聚合函數(shù) 77
5.2 Hive構(gòu)建搜索引擎日志數(shù)據(jù)分析系統(tǒng) 79
5.2.1 數(shù)據(jù)預處理(Linux環(huán)境) 79
5.2.2 基于Hive構(gòu)建日志數(shù)據(jù)的數(shù)據(jù)倉庫 81
5.2.3 數(shù)據(jù)分析需求(1):條數(shù)統(tǒng)計 84
5.2.4 數(shù)據(jù)分析需求(2):關(guān)鍵詞分析 84
5.2.5 數(shù)據(jù)分析需求(3):UID分析 85
5.2.6 數(shù)據(jù)分析需求(4):用戶行為
分析 86
5.3 Sqoop應用與開發(fā) 88
5.3.1 Sqoop簡介 89
5.3.2 Sqoop安裝部署 89
5.3.3 Sqoop將Hive表中的數(shù)據(jù)導入MySQL 91
5.4 本章總結(jié) 96
5.5 本章習題 96
第06章 Hive數(shù)據(jù)庫對象與
用戶自定義函數(shù) 97
6.1 Hive視圖 97
6.1.1 創(chuàng)建視圖 98
6.1.2 查看視圖 98
6.1.3 視圖應用實戰(zhàn) 99
6.1.4 刪除視圖 100
6.2 Hive分桶表 100
6.2.1 創(chuàng)建表 101
6.2.2 插入數(shù)據(jù) 101
6.3 Hive用戶自定義函數(shù) 102
6.3.1 用戶自定義函數(shù)簡介 102
6.3.2 UDF應用開發(fā) 103
6.4 Hive用戶自定義聚合函數(shù) 105
6.4.1 用戶自定義聚合函數(shù)簡介 105
6.4.2 UDAF應用開發(fā) 105
6.5 本章總結(jié) 108
6.6 本章習題 108
第07章 Azkaban任務調(diào)度器 109
7.1 Azkaban簡介 109
7.1.1 Azkaban基本原理 110
7.1.2 Azkaban核心組件 111
7.2 Azkaban安裝部署 112
7.2.1 準備工作 112
7.2.2 安裝MySQL 112
7.2.3 配置MySQL 113
7.2.4 配置AzkabanWebServer 114
7.2.5 啟動AzkabanWebServer
服務器 116
7.2.6 配置AzkabanExecutorServer 116
7.2.7 啟動AzkabanExecutorServer
執(zhí)行服務器 117
7.2.8 登錄訪問WebServer并創(chuàng)建
工作流調(diào)度項目 117
7.3 Hadoop作業(yè)的設(shè)置與書寫 119
7.4 Hive作業(yè)的設(shè)置與書寫 128
7.5 本章總結(jié) 130
7.6 本章習題 131
第08章 電商推薦系統(tǒng)開發(fā)實戰(zhàn) 132
8.1 構(gòu)建數(shù)據(jù)倉庫 132
8.1.1 創(chuàng)建數(shù)據(jù)倉庫 133
8.1.2 創(chuàng)建原始數(shù)據(jù)表 134
8.1.3 加載數(shù)據(jù)到數(shù)據(jù)倉庫 136
8.1.4 驗證數(shù)據(jù)結(jié)果 136
8.2 數(shù)據(jù)清洗 139
8.2.1 創(chuàng)建臨時表 139
8.2.2 數(shù)據(jù)清洗詳細步驟 140
8.2.3 驗證清洗 143
8.3 推薦算法實現(xiàn) 144
8.3.1 Mahout安裝部署 144
8.3.2 itembase協(xié)同過濾推薦算法 147
8.3.3 路徑準備 148
8.3.4 運行推薦算法 150
8.3.5 查看推薦結(jié)果 151
8.4 數(shù)據(jù)ETL 152
8.4.1 獲取數(shù)據(jù) 152
8.4.2 創(chuàng)建數(shù)據(jù)庫和表 152
8.4.3 加載數(shù)據(jù) 153
8.4.4 驗證ETL過程 153
8.5 本章總結(jié) 155
8.6 本章習題 156
第09章 汽車銷售數(shù)據(jù)分析
系統(tǒng)實戰(zhàn)開發(fā) 157
9.1 數(shù)據(jù)概況 157
9.2 項目實戰(zhàn) 158
9.2.1 構(gòu)建數(shù)據(jù)倉庫 158
9.2.2 創(chuàng)建原始數(shù)據(jù)表 159
9.2.3 加載數(shù)據(jù)到數(shù)據(jù)倉庫 161
9.2.4 驗證數(shù)據(jù)結(jié)果 161
9.2.5 統(tǒng)計乘用車輛和商用車輛的
銷售數(shù)量和銷售數(shù)量占比 162
9.2.6 統(tǒng)計山西省2013年每個月的
汽車銷售數(shù)量的比例 162
9.2.7 統(tǒng)計買車的男女比例及男女對車的
品牌的選擇 163
9.2.8 統(tǒng)計車的所有權(quán)、車輛型號和
車輛類型 165
9.2.9 統(tǒng)計不同類型車在一個月(對應一段
時間,如每月或每年)的總銷量 167
9.2.10 通過不同類型(品牌)車銷售情況,
來統(tǒng)計發(fā)動機型號和燃料種類 168
9.2.11 統(tǒng)計五菱某一年每月的銷售量 168
9.3 本章總結(jié) 169
9.4 本章習題 169
第 10章 新浪微博數(shù)據(jù)分析系統(tǒng)
實戰(zhàn)開發(fā) 170
10.1 數(shù)據(jù)概況 170
10.1.1 數(shù)據(jù)參數(shù) 170
10.1.2 數(shù)據(jù)類型 171
10.2 項目實戰(zhàn) 172
10.2.1 組織數(shù)據(jù) 172
10.2.2 統(tǒng)計需求 174
10.2.3 特殊需求 179
10.2.4 數(shù)據(jù)ETL 182
10.3 本章總結(jié) 184
10.4 本章習題 184