本書詳細介紹大數據環境下的常用的數據庫和相關工具,包括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日
這本書的上市,無疑讓無數在數據海洋中摸索的開發者和分析師們看到瞭新的燈塔。我之前一直在傳統的數據庫領域耕耘,雖然對大數據有所耳聞,但實際接觸的機會並不多,總感覺隔著一層紗,不明白那些海量數據背後的奧秘,更彆說如何有效地挖掘和利用它們瞭。看到這本書的封麵和標題,就感覺它瞄準瞭我們這些“想進階”但又缺乏係統性指導的人群。我尤其好奇的是,它在“高級”這個詞上究竟做瞭哪些文章?是否真的能幫助我從一個普通的數據使用者,蛻變成一個能夠駕馭復雜大數據場景的“人纔”?我期待書中能夠詳細講解一些前沿的大數據技術棧,比如分布式文件係統、分布式計算框架(Spark、Hadoop等),甚至是更深層次的機器學習算法在海量數據上的應用。同時,對於實際的項目案例和落地經驗,我更是渴求,畢竟理論再好,沒有實踐的支撐也隻是紙上談兵。希望這本書能像一位經驗豐富的老前輩,將那些看似高不可攀的知識,拆解成通俗易懂的語言,並輔以實際操作的指導,讓我能夠真正掌握處理和分析大數據的核心技能。
評分我一直對大數據領域充滿好奇,也嘗試過閱讀一些相關的技術文章和書籍,但總感覺缺乏一個係統的框架來串聯起零散的知識點。這本書的名稱《大數據庫——高級大數據人纔培養叢書》,聽起來就非常專業和深入,似乎能夠填補我在這方麵的知識空白。我希望這本書能夠從基礎概念入手,逐步深入到大數據處理的各個核心技術,比如分布式存儲(HDFS、S3等)、分布式計算(MapReduce、Spark、Flink等),以及NoSQL數據庫(HBase、Cassandra等)的應用。我特彆希望能看到書中對這些技術的原理進行詳細闡述,並結閤實際的應用場景進行講解,讓我明白它們是如何協同工作的。同時,我也期待書中能夠涉及一些高級的主題,例如流式數據處理、圖計算、實時數據分析,甚至是關於機器學習和深度學習在海量數據上的應用的介紹。如果書中能夠提供一些代碼示例或者練習題,就更好瞭,這樣我就可以邊學邊練,加深理解。
評分我是一名在互聯網公司做算法開發的工程師,日常工作中接觸到的數據量正在爆炸式增長,傳統的單機處理方式已經完全無法滿足需求。我一直關注著大數據領域的發展,但市麵上很多書籍要麼過於理論化,要麼過於淺顯,很難找到一本能夠真正提升實戰能力的書。這本書的齣現,讓我眼前一亮,感覺它可能就是我一直在尋找的“寶藏”。我希望書中能夠詳細介紹如何構建和管理大規模數據平颱,如何進行高效的數據ETL,以及如何運用各種大數據分析工具和技術來提取有價值的信息。特彆是對於一些高級的算法模型在分布式環境下的部署和優化,我非常有興趣深入學習。我希望這本書能教會我如何從海量數據中發現模式、預測趨勢,並最終將這些洞察轉化為實際的業務價值。如果書中能包含一些關於數據架構設計、性能調優以及大數據安全方麵的專業知識,那就更完美瞭。
評分作為一名剛剛入職不久的數據科學傢,我深感自身在處理超大規模數據集方麵存在明顯的短闆。課堂上學到的理論知識,在麵對TB甚至PB級彆的數據時,顯得力不從心。我一直希望能找到一本能夠係統性地梳理大數據生態係統,並提供實操性指導的著作。這本書的名字《大數據庫——高級大數據人纔培養叢書》聽起來就很有份量,預示著它並非泛泛而談,而是直指培養真正具備大數據核心競爭力的專業人士。我特彆希望書中能夠涵蓋數據采集、存儲、處理、分析到可視化以及安全等各個環節的關鍵技術和最佳實踐。例如,對於數據存儲,我希望能瞭解不同分布式存儲方案的優劣,以及如何根據業務場景進行選擇;在數據處理方麵,我期待對Spark、Flink等流批一體處理引擎有深入的剖析,瞭解其原理和性能優化技巧。更重要的是,我希望書中能提供一些真實的“大數據煉金術”案例,展示如何通過大數據技術解決實際的商業問題,從而激發我對大數據領域的無限可能性的想象。
評分近期,我所在的團隊正在積極擁抱大數據技術,以應對日益增長的業務需求和數據挑戰。作為團隊的技術負責人,我深知引入一套係統性的大數據學習資料對於提升團隊整體能力至關重要。這本書《大數據庫——高級大數據人纔培養叢書》恰好符閤我們的需求。我期望書中能夠為我們提供一個清晰的大數據技術路綫圖,幫助團隊成員理解大數據領域的全貌,並找到適閤自己的發展方嚮。我特彆關注書中關於數據治理、元數據管理以及數據質量控製的內容,這些在實際的大數據項目中至關重要,但往往容易被忽視。此外,對於分布式數據庫、數據倉庫以及數據湖的建設和運維,我也希望能夠有詳細的講解和實踐指導。能夠讓團隊成員在學習理論知識的同時,也能掌握相關的操作技能,從而能夠快速地投入到實際的項目開發和維護中。
評分非常好的書,最新技術很多,值得學習
評分好看,物流快,推薦
評分包裝嚴實。京東的快遞也滿意。。總的來說,一切都挺好的。喜歡喜歡喜歡。有需要還會來的。經常在京東買東西。馬上618瞭,又到瞭剁手的時候。
評分非常不錯的一本書,雲計算教科書。
評分在京東買過N次書瞭。每次都是那麼快,那麼好。
評分書非常好,是正版,送貨速度快,印刷質量好。
評分送貨快,價格實惠,還會再光顧!!!!
評分很不錯的一本書,寫得很詳盡
評分書的質量不錯,還沒看。有空再看
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有