發表於2024-11-08
本書詳細介紹大數據環境下的常用的數據庫和相關工具,包括HBase、Hive、Impala、Spark、Spark SQL、鍵值數據庫和流式數據庫等,給齣瞭詳細的工作機理和應用方法,並給齣完整的實踐案例和代碼。
劉鵬,清華大學博士,解放軍理工大學教授、學科帶頭人,中國雲計算專傢委員會委員。
主要研究方嚮為信息網格和雲計算,完成科研課題18項,發錶論文70餘篇,獲部級科技進步奬6項。曾奪得國際計算機排序比賽冠軍,並二次奪得全國高校科技比賽*高奬,獲“全軍十大學習成纔標兵”、“南京十大傑齣青年”和“清華大學學術新秀”等稱號。2002年首倡的“網格計算池”和2003年研發的“反垃圾郵件網格”分彆為雲計算和雲安全的前身。創辦瞭知名的中國網格和中國雲計算網站
目 錄
第1章 大數據庫概述 1
1.1 傳統關係型數據庫麵臨的問題 1
1.2 大數據庫技術 2
1.2.1 列式數據庫 2
1.2.2 內存數據庫 2
1.2.3 鍵值數據庫 3
1.2.4 流式數據庫 3
1.3 大數據SQL 3
1.4 當前主流大數據SQL簡介 4
1.4.1 Hive 4
1.4.2 Impala 5
1.4.3 Shark 6
1.4.4 Spark SQL 7
1.5 本章總結 8
習題 9
參考文獻 9
第2章 分布式數據庫HBase 10
2.1 HBase基礎 10
2.1.1 體係架構 10
2.1.2 數據模型 15
2.2 HBase操作簡介 17
2.2.1 HBase接口簡介 17
2.2.2 HBase Shell實戰 17
2.2.3 HBase API 20
2.3 HBase實戰 21
2.3.1 實戰HBase之綜例 21
2.3.2 實戰HBase之使用MapReduce構建索引 22
習題 26
參考文獻 27
第3章 數據倉庫工具Hive 28
3.1 Hive簡介 28
3.1.1 工作原理 28
3.1.2 體係架構 29
3.1.3 計算模型 30
3.1.4 Hive部署模式 31
3.2 Hive的使用 32
3.2.1 Hive的數據類型 32
3.2.2 Hive接口匯總 32
3.3 實戰Hive Shell 33
3.3.1 DDL操作 33
3.3.2 DML操作 34
3.3.3 SQL操作 34
3.4 實戰Hive之復雜語句 35
3.5 實戰Hive之綜閤示例 37
3.6 實戰Hive API接口 38
3.6.1 UDF編程示例 38
3.6.2 UDAF編程示例 39
習題 40
參考文獻 41
第4章 大數據查詢係統Impala 42
4.1 Impala簡介 42
4.1.1 Impala的起源 42
4.1.2 Impala的特點 42
4.1.3 Impala 前輩及競爭對手 43
4.2 Impala工作原理 43
4.2.1 Impala 設計目標 44
4.2.2 Impala 服務器組件 44
4.2.3 Impala 編程特點 45
4.2.4 Impala在Hadoop生態圈中的生存之道 45
4.3 Impala環境搭建 46
4.3.1 Impala 安裝前的考慮 47
4.3.2 Impala 安裝途徑與安裝示範 50
4.4 Impala操作實例 61
4.4.1 Impala 基本操作 62
4.4.2 Impala 數據庫操作 62
習題 66
參考文獻 66
第5章 內存數據庫Spark 67
5.1 Spark簡介 67
5.1.1 Spark的引入 67
5.1.2 Spark生態係統BDAS 69
5.1.3 Spark係統架構 75
5.1.4 Spark工作流程 77
5.1.5 Spark應用案例 78
5.2 Spark計算模型 80
5.2.1 Spark程序模型 81
5.2.2 彈性分布式數據集(RDD) 81
5.2.3 Spark算子 84
5.3 Spark工作機製 85
5.3.1 Spark運行機製 85
5.3.2 Spark調度機製 87
5.3.3 Spark I/O機製 93
5.3.4 Spark通信機製 94
5.3.5 Spark容錯機製 97
5.3.6 Spark Shuffle機製 101
5.4 Scala快速入門 102
5.4.1 Scala解釋器 103
5.4.2 變量 103
5.4.3 函數 104
5.4.4 編寫Scala腳本 105
5.4.5 while 配閤if實現循環 105
5.4.6 foreach和 for 來實現迭代 105
5.4.7 類型參數化數組 106
5.4.8 Lists 107
5.4.9 使用元組(Tuples) 108
5.4.10 Sets和Maps 108
5.4.11 函數編程風格 109
5.4.12 讀取文件 110
5.5 Spark環境部署 110
5.5.1 安裝與配置Spark 110
5.5.2 Intellij IDEA構建Spark開發環境 118
5.5.3 SBT構建Spark程序 121
5.5.4 編譯Spark程序 122
5.5.5 遠程調試Spark程序 123
5.5.6 生成Spark部署包 124
5.6 Spark 編程案例 124
5.6.1 WordCount 125
5.6.2 Top K 127
5.6.3 倒排索引 128
習題 130
參考文獻 131
第6章 Spark SQL 132
6.1 Spark SQL簡介 132
6.1.1 Spark SQL發展曆程 132
6.1.2 Spark SQL 架構 133
6.2 Spark SQL編程基礎 137
6.2.1 數據類型及錶達式 137
6.2.2 Spark SQL查詢引擎Catalyst 138
6.2.3 SQL DSL API 142
6.2.4 Spark SQL ThriftServer和CLI 144
6.2.5 Spark SQL常用操作 146
6.3 Spark SQL實戰 151
6.3.1 Spark SQL開發環境搭建 151
6.3.2 Spark SQL使用入門 166
習題 173
參考文獻 173
第7章 鍵值數據庫 174
7.1 概述 174
7.1.1 鍵值存儲 174
7.1.2 鍵值數據庫 176
7.2 Redis 178
7.2.1 簡介 178
7.2.2 Redis數據服務及集群技術 180
7.2.3 Redis安裝 186
7.2.4 Redis數據操作 187
7.2.5 案例:網站訪問曆史記錄查詢 193
7.3 Memcached 198
7.3.1 簡介 198
7.3.2 Memcached緩存技術 198
7.3.3 Memcached安裝 200
7.3.4 Memcached數據操作 203
7.3.5 Memcached分布式技術 206
7.3.6 案例:論壇帖子信息緩存 207
7.4 典型應用及局限 208
7.4.1 典型應用 209
7.4.2 鍵值數據庫局限 211
習題 211
參考文獻 212
第8章 流式數據庫 213
8.1 流式計算模型 213
8.1.1 流式計算概念 213
8.1.2 流式計算數據特點 215
8.1.3 流式計算典型應用 216
8.1.4 典型流式計算平颱 216
8.2 流式計算關鍵技術 218
8.2.1 計算拓撲 218
8.2.2 消息傳遞 220
8.2.3 高可用性 222
8.2.4 語義保障 224
8.2.5 其他關鍵技術 225
8.3 Storm平颱 225
8.3.1 Storm簡介 225
8.3.2 Storm原理 227
8.3.3 Storm部署 237
8.3.4 案例:Maven環境下的Storm編程 242
8.4 Spark Streaming平颱 246
8.4.1 Spark Streaming簡介 247
8.4.2 Spark Streaming原理 248
8.4.3 案例:集群環境下的Spark Streaming編程 249
習題 261
參考文獻 262
第9章 數據應用托管平颱Docker 263
9.1 Docker技術簡介 263
9.1.1 Docker是什麼 263
9.1.2 Docker的架構和流程 265
9.2 Docker的優勢和局限 266
9.2.1 Docker的優勢 266
9.2.2 Docker的局限性 268
9.3 基於Docker的大數據係統設計 270
9.3.1 分布式Docker網絡環境的搭建 270
9.3.2 Docker集群管理係統:Kubernetes 271
習題 277
參考文獻 278
總 序
短短幾年間,大數據就以一日韆裏的發展速度,快速實現瞭從概念到落地,直接帶動瞭相關産業井噴式發展。全球多傢研究機構統計數據顯示,大數據産業將迎來發展黃金期:IDC預計,大數據和分析市場將從2016年的1300億美元增長到2020年的2030億美元以上;中國報告大廳發布的大數據行業報告數據也說明,自2017年起,我國大數據産業將迎來發展黃金期,未來2~3年的市場規模增長率將保持在35%左右。
數據采集、數據存儲、數據挖掘、數據分析等大數據技術在越來越多的行業中得到應用,隨之而來的就是大數據人纔問題的凸顯。麥肯锡預測,每年數據科學專業的應屆畢業生將增加7%,然而僅高質量項目對於專業數據科學傢的需求每年就會增加12%,完全供不應求。根據《人民日報》的報道,未來3~5年,中國需要180萬數據人纔,但目前隻有約30萬人,人纔缺口達到150萬之多。
以貴州大學為例,其首屆大數據專業研究生就業率就達到100%,可以說“一搶而空”。急切的人纔需求直接催熱瞭大數據專業,國傢教育部正式設立“數據科學與大數據技術”本科新專業。目前已經有兩批共計35所大學獲批,包括北京大學、中南大學、對外經濟貿易大學、中國人民大學、北京郵電大學、復旦大學等。估計2018年會有幾百所高校獲批。
不過,就目前而言,在大數據人纔培養和大數據課程建設方麵,大部分高校仍然處於起步階段,需要探索的還有很多。首先,大數據是個新生事物,懂大數據的老師少之又少,院校缺“人”;其次,尚未形成完善的大數據人纔培養和課程體係,院校缺“機製”;再次,大數據實驗需要為每位學生提供集群計算機,院校缺“機器”;最後,院校沒有海量數據,開展大數據教學科研工作缺“原材料”。
其實,早在網格計算和雲計算興起時,我國科技工作者就曾遇到過類似的挑戰,我有幸參與瞭這些問題的解決過程。為瞭解決網格計算問題,我在清華大學讀博期間,於2001年創辦瞭中國網格信息中轉站網站,每天花幾個小時收集和分享有價值的資料給學術界,此後我也多次籌辦和主持全國性的網格計算學術會議,進行信息傳遞與知識分享。2002年,我與其他專傢閤作的《網格計算》教材也正式麵世。
2008年,當雲計算開始萌芽之時,我創辦瞭中國雲計算網站(chinacloud.cn)(在各大搜索引擎“雲計算”關鍵詞中排名第一),2010年齣版瞭《雲計算(第一版)》、2011年齣版瞭《雲計算(第二版)》、2015年齣版瞭《雲計算(第三版)》,每一版都花費瞭大量成本製作並免費分享對應的幾十個教學PPT。目前,這些PPT的下載總量達到瞭幾百萬次之多。同時,《雲計算》教材也成為國內高校的首選教材,在CNKI公布的高被引圖書名單中,對於2010年以來齣版的所有圖書,《雲計算(第一版)》在自動化和計算機領域排名全國第一。除瞭資料分享,在2010年,我也在南京組織瞭全國高校雲計算師資培訓班,培養瞭國內第一批雲計算老師,並通過與華為、中興、360等知名企業閤作,輸齣雲計算技術,培養雲計算研發人纔。這些工作獲得瞭大傢的認可與好評,此後我接連擔任瞭工信部雲計算研究中心專傢、中國雲計算專傢委員會雲存儲組組長等職位。
近幾年,麵對日益突齣的大數據發展難題,我也正在嘗試使用此前類似的辦法去應對這些挑戰。為瞭解決大數據技術資料缺乏和交流不夠通透的問題,我於2013年創辦瞭中國大數據網站(thebigdata.cn),投入大量的人力進行日常維護,該網站目前已經在各大搜索引擎的“大數據”關鍵詞排名中位居第一;為瞭解決大數據師資匱乏的問題,我麵嚮全國院校陸續舉辦多期大數據師資培訓班。2016年末至今,在南京多次舉辦全國高校/高職/中職大數據免費培訓班,基於《大數據》《大數據實驗手冊》以及雲創大數據提供的大數據實驗平颱,幫助到場老師們跑通瞭Hadoop、Spark等多個大數據實驗,使他們跨過瞭“從理論到實踐,從知道到用過”的門檻。2017年5月,還舉辦瞭全國韆所高校大數據師資免費講習班,盛況空前。
其中,為瞭解決大數據實驗難的問題而開發的大數據實驗平颱,正在為越來越多高校的教學科研帶去方便:2016年,我帶領雲創大數據(www.cstor.cn,股票代碼:835305)的科研人員,應用Docker容器技術,成功開發瞭BDRack大數據實驗一體機,它打破虛擬化技術的性能瓶頸,可以為每一位參加實驗的人員虛擬齣Hadoop集群、Spark集群、Storm集群等,自帶實驗所需數據,並準備瞭詳細的實驗手冊(包含42個大數據實驗)、PPT和實驗過程視頻,可以開展大數據管理、大數據挖掘等各類實驗,並可進行精確營銷、信用分析等多種實戰演練。目前,大數據實驗平颱已經在鄭州大學、西京學院、鄭州升達經貿管理學院、鎮江高等職業技術學校等多所院校成功應用,並廣受校方好評。該平颱也以雲服務的方式在綫提供(大數據實驗平颱,https://bd.cstor.cn),幫助師生通過自學,用一個月左右成為大數據動手的高手。
同時,為瞭解決缺乏權威大數據教材的問題,我所負責的南京大數據研究院,聯閤金陵科技學院、河南大學、雲創大數據、中國地震局等多傢單位,曆時兩年,編著齣版瞭適閤本科教學的《大數據》《大數據庫》《大數據實驗手冊》等教材。另外,《數據挖掘》《虛擬化與容器》《大數據可視化》《深度學習》等本科教材也將於近期齣版。在大數據教學中,本科院校的實踐教學應更加係統性,偏嚮新技術的應用,且對工程實踐能力要求更高。而高職、高專院校則更偏嚮於技術性和技能訓練,理論以夠用為主,學生將主要從事數據清洗和運維方麵的工作。基於此,我們還聯閤多傢高職院校專傢準備瞭《雲計算基礎》《大數據基礎》《數據挖掘基礎》《R語言》《數據清洗》《大數據係統運維》《大數據實踐》係列教材,目前也已經陸續進入定稿齣版階段。
此外,我們也將繼續在中國大數據(thebigdata.cn)和中國雲計算(chinacloud.cn)等網站免費提供配套PPT和其他資料。同時,持續開放大數據實驗平颱(https://bd.cstor.cn)、免費的物聯網大數據托管平颱萬物雲(wanwuyun.com)和環境大數據免費分享平颱環境雲(envicloud.cn),使資源與數據隨手可得,讓大數據學習變得更加輕鬆。
在此,特彆感謝我的碩士導師謝希仁教授和博士導師李三立院士。謝希仁教授所著的《計算機網絡》已經更新到第7版,與時俱進且日臻完美,時時提醒學生要以這樣的標準來寫書。李三立院士是留蘇博士,為我國計算機事業做齣瞭傑齣貢獻,曾任國傢攀登計劃項目首席科學傢。他的嚴謹治學帶齣瞭一大批傑齣的學生。
本叢書是集體智慧的結晶,在此謹嚮付齣辛勤勞動的各位作者緻敬!書中難免會有不當之處,請讀者不吝賜教。我的郵箱:gloud@126.com,微信公眾號:劉鵬看未來(lpoutlook)。
劉鵬 教授
於南京大數據研究院
前 言
麵對大數據時代産生的海量數據,傳統的關係型數據庫和數據處理技術在使用中遇到瞭前所未有的難題,如海量數據快速訪問能力受到束縛,海量數據訪問缺乏靈活性,對非結構化數據處理能力薄弱,海量數據導緻存儲成本、維護管理成本不斷增加等。如何對海量數據進行查詢分析已成為所有數據庫研發人員亟待解決的問題,大數據庫因此應運而生。所謂的大數據庫是針對傳統數據庫在存儲、管理海量數據時顯現的不足,逐漸衍生齣能存儲管理多種數據類型,並適用於海量數據處理的數據庫技術。
《大數據》這本書於2017年1月齣版,承濛大傢的喜愛,自齣版以來受到廣大讀者的關注和好評。由於大數據技術發展迅猛,我們的大數據研發團隊經過長期的研究和緊密跟蹤,及時推齣瞭《大數據庫》這本教材。《大數據庫》是全國高校標準教材《大數據》的姊妹篇,在內容上進行瞭全麵互補,以確保能夠更準確地反映大數據技術的最新麵貌。
正如在小數據時代我們應該學習《數據庫》一樣,在大數據時代我們應該學習《大數據庫》。本書係統地介紹瞭目前業界主流的四種大數據庫技術,分彆是列式數據庫、內存數據庫、鍵值數據庫以及流式數據庫。列式數據庫通常用來應對海量數據的分布式存儲,典型列式數據庫有HBase;內存數據庫是指將全部內容存放在內存中,而非像傳統數據庫那樣存放在外部存儲器中的數據庫,這種數據庫的讀寫性能很高,主要用在對性能要求極高的環境中,典型內存數據庫有Spark;鍵值數據庫主要使用一個哈希錶,這個錶中有一個特定的鍵和一個指針指嚮特定的數據,該模型對於IT係統的優勢在於簡單、易部署、高並發,典型鍵值數據庫有Memcached、Redis;流式數據庫的處理模式是將源源不斷的數據視為數據流,它總是盡可能快速地分析最新的數據,並給齣分析結果,也就是盡可能實現實時計算,典型流式數據庫有Spark Streaming、Storm。
大數據庫技術可以對海量數據進行分析處理,采用不同的技術手段挖掘價值信息並投入到應用中。因此,期望讀者可以從本書中學會主流大數據庫技術的理論知識和實戰應用;也期望本書為大數據“創新人纔”培養目標提供新思路。
本書是集體智慧的結晶,在此謹嚮付齣辛勤勞動的各位作者緻敬!書中難免會有不當之處,請讀者不吝賜教。我的郵箱:gloud@126.com,微信公眾號:劉鵬看未來(lpoutlook)。
劉鵬 教授
於南京大數據研究院
2017年6月6日
大數據庫——高級大數據人纔培養叢書 下載 mobi pdf epub txt 電子書 格式 2024
大數據庫——高級大數據人纔培養叢書 下載 mobi epub pdf 電子書剛收到書,挺好的。
評分書不錯,深入淺齣,涉及架構方麵多一點
評分一口氣買瞭十本書!!
評分內容質量都棒棒噠,贊~~
評分正版圖書,對我幫助挺大。
評分還可以,雖然看起來比較舊。
評分正版圖書,內容可以。
評分正版,支持京東!!!
評分是代彆人買的,好像還不錯~
大數據庫——高級大數據人纔培養叢書 mobi epub pdf txt 電子書 格式下載 2024