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