Hadoop & Spark大數據開發實戰
-
【作 者】主編 肖睿 雷剛躍
【I S B N 】978-7-5170-5643-0
【責任編輯】李炎
【適用讀者群】科技
【出版時間】2017-07-01
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】308
【千字數】416
【印 張】19.25
【定 價】¥58
【叢 書】大數據開發工程師系列
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
大數據讓我們以一種前所未有的方式,通過對海量數據進行分析,獲得有巨大價值的產品和服務,最終形成變革之力。本書圍繞Hadoop和Spark這兩個主流技術進行講解,主要內容包括Hadoop環境配置、分布式文件系統HDFS、分布式計算框架MapReduce、資源調度框架YARN與Hadoop新特性、大數據數據倉庫Hive、離線處理輔助系統、Spark Core、 Spark SQL、Spark Streaming等知識。
為保證最優學習效果,本書緊密結合實際應用,利用大量案例說明和實踐,提煉含金量十足的開發經驗。本書使用Hadoop和Spark進行大數據開發,并配以完善的學習資源和支持服務,包括視頻教程、案例素材下載、學習交流社區、討論組等終身學習內容,為開發者帶來全方位的學習體驗,更多技術支持請訪問課工場官網:www.kgc.cn。
領先的實用技能——打造大數據開發工程師
科學的訓練模式——授人以漁而不只是作品臨摹
真實的項目驅動——行業知識與專業設計相呼應
便捷的學習體驗——傳統教材與二維碼革命性攜手
叢書設計:
準備好了嗎?進入大數據時代!大數據已經并將繼續影響人類的方方面面。2015年8月31日,經李克強總理批準,國務院正式下發《關于印發促進大數據發展行動綱要的通知》,這是從國家層面正式宣告大數據時代的到來!企業資本則以BAT互聯網公司為首,不斷進行大數據創新,從而實現大數據的商業價值。本叢書根據企業人才實際需求,參考歷史學習難度曲線,選取“Java +大數據”技術集作為學習路徑,旨在為讀者提供一站式實戰型大數據開發學習指導,幫助讀者踏上由開發入門到大數據實戰的互聯網+大數據開發之旅!
叢書特點:
1.以企業需求為設計導向
滿足企業對人才的技能需求是本叢書的核心設計原則,為此課工場大數據開發教研團隊,通過對數百位BAT一線技術專家進行訪談、對上千家企業人力資源情況進行調研、對上萬個企業招聘崗位進行需求分析,從而實現技術的準確定位,達到課程與企業需求的高契合度。
2.以任務驅動為講解方式
叢書中的技能點和知識點都由任務驅動,讀者在學習知識時不僅可以知其然,而且可以知其所以然,幫助讀者融會貫通、舉一反三。
3.以實戰項目來提升技術
本叢書均設置項目實戰環節,該環節綜合運用書中的知識點,幫助讀者提升項目開發能力。每個實戰項目都設有相應的項目思路指導、重難點講解、實現步驟總結和知識點梳理。
4.以互聯網+實現終身學習
本叢書可通過使用課工場APP進行二維碼掃描來觀看配套視頻的理論講解和案例操作,同時課工場(www.kgc.cn)開辟教材配套版塊,提供案例代碼及案例素材下載。此外,課工場還為讀者提供了體系化的學習路徑、豐富的在線學習資源和活躍的學習社區,方便讀者隨時學習。
讀者對象:
1.大中專院校的老師和學生
2.編程愛好者
3.初中級程序開發人員
4.相關培訓機構的老師和學員
讀者服務:
為解決本叢書中存在的疑難問題,讀者可以訪問課工場官方網站(www.kgc.cn),也可以發送郵件到ke@kgc.cn,我們的客服專員將竭誠為您服務。
致謝:
本叢書是由課工場大數據開發教研團隊研發編寫的,課工場(kgc.cn)是北京大學旗下專注于互聯網人才培養的高端教育品牌。作為國內互聯網人才教育生態系統的構建者,課工場依托北京大學優質的教育資源,重構職業教育生態體系,以學員為本、以企業為基,構建教學大咖、技術大咖、行業大咖三咖一體的教學矩陣,為學員提供高端、靠譜、炫酷的學習內容!
感謝您購買本叢書,希望本叢書能成為您大數據開發之旅的好伙伴!
本章任務 2
任務1 大數據概述 2
1.1.1 大數據基本概念 2
1.1.2 大數據對于企業帶來的挑戰 3
任務2 Hadoop概述 4
1.2.1 Hadoop簡介 4
1.2.2 Hadoop生態系統 7
1.2.3 大數據應用案例 9
任務3 Hadoop環境搭建 10
1.3.1 虛擬機安裝 11
1.3.2 Linux系統安裝 14
1.3.3 Hadoop偽分布式環境搭建 31
本章總結 34
本章作業 35
第2章 分布式文件系統HDFS 37
本章任務 38
任務1 初識HDFS 38
2.1.1 HDFS概述 38
2.1.2 HDFS基本概念 41
2.1.3 HDFS體系結構 42
任務2 HDFS操作 44
2.2.1 HDFS shell訪問 44
2.2.2 Java API訪問 47
任務3 HDFS運行機制 50
2.3.1 HDFS文件讀寫流程 51
2.3.2 HDFS副本機制 52
2.3.3 數據負載均衡 53
2.3.4 機架感知 54
任務4 HDFS進階 55
2.4.1 Hadoop序列化 55
2.4.2 基于文件的數據結構SequenceFile 60
2.4.3 基于文件的數據結構MapFile 65
本章總結 67
本章作業 68
第3章 分布式計算框架
MapReduce 69
本章任務 70
任務1 MapReduce編程模型 70
3.1.1 MapReduce概述 70
3.1.2 MapReduce編程模型 71
3.1.3 MapReduce WordCount編程實例 72
任務2 MapReduce進階 77
3.2.1 MapReduce類型 77
3.2.2 MapReduce輸入格式 78
3.2.3 MapReduce輸出格式 80
3.2.4 Combiner 81
3.2.5 Partitioner 84
3.2.6 RecordReader 87
任務3 MapReduce高級編程 94
3.3.1 Join的MapReduce實現 94
3.3.2 排序的MapReduce實現 101
3.3.3 二次排序的MapReduce實現 103
3.3.4 合并小文件的MapReduce實現 109
本章總結 113
本章作業 114
第4章 YARN與Hadoop新特性 115
本章任務 116
任務1 初識資源調度框架YARN 116
4.1.1 YARN產生背景 116
4.1.2 初識YARN 117
4.1.3 YARN運行機制 119
任務2 HDFS新特性 121
4.2.1 HDFS NameNode HA 122
4.2.2 HDFS NameNode Federation 129
4.2.3 HDFS Snapshots 131
4.2.4 WebHDFS REST API 134
4.2.5 DistCp 135
任務3 YARN新特性 135
4.3.1 ResourceManager Restart 135
4.3.2 ResourceManager HA 136
本章總結 139
本章作業 139
第5章 大數據數據倉庫Hive 141
本章任務 142
任務1 初識Hive 142
5.1.1 Hive簡介 142
5.1.2 Hive架構 143
5.1.3 Hive與Hadoop的關系 144
5.1.4 Hive與傳統關系型數據庫對比 144
5.1.5 Hive數據存儲 145
5.1.6 Hive環境部署 145
任務2 Hive基本操作 146
5.2.1 DDL操作 147
5.2.2 DML操作 150
5.2.3 Hive shell操作 154
任務3 Hive進階 155
5.3.1 Hive函數 155
5.3.2 Hive常用調優策略 158
本章總結 163
本章作業 164
第6章 離線處理輔助系統 165
本章任務 166
任務1 使用Sqoop完成數據遷移 166
6.1.1 Sqoop簡介 166
6.1.2 導入MySQL數據到HDFS 171
6.1.3 導出HDFS數據到MySQL 177
6.1.4 導入MySQL數據到Hive 179
6.1.5 Sqoop中Job的使用 180
任務2 工作流調度框架Azkaban 180
6.2.1 Azkaban簡介 181
6.2.2 Azkaban部署 182
6.2.3 Azkaban實戰 186
本章總結 189
本章作業 189
第7章 Spark入門 191
本章任務 192
任務1 初識Spark 192
7.1.1 Spark概述 192
7.1.2 Spark優點 193
7.1.3 Spark生態系統BDAS 195
任務2 Scala入門 198
7.2.1 Scala介紹 199
7.2.2 Scala函數 202
7.2.3 Scala面向對象 203
7.2.4 Scala集合 206
7.2.5 Scala進階 209
任務3 獲取Spark源碼并進行編譯 211
7.3.1 獲取Spark源碼 211
7.3.2 Spark源碼編譯 212
任務4 第一次與Spark親密接觸 214
7.4.1 Spark環境部署 214
7.4.2 Spark完成詞頻統計分析 215
本章總結 216
本章作業 217
第8章 Spark Core 219
本章任務 220
任務1 Spark的基石RDD 220
8.1.1 RDD概述 220
8.1.2 RDD常用創建方式 221
8.1.3 RDD的轉換 223
8.1.4 RDD的動作 225
8.1.5 RDD的依賴 227
任務2 RDD進階 230
8.2.1 RDD緩存 230
8.2.2 共享變量(Shared Variables) 233
8.2.3 Spark核心概念 235
8.2.4 Spark運行架構 236
任務3 基于RDD的Spark編程 237
8.3.1 開發前置準備 237
8.3.2 使用Spark Core開發詞頻
計數WordCount 238
8.3.3 使用Spark Core進行年齡統計 242
本章總結 243
本章作業 243
第9章 Spark SQL 245
本章任務 246
任務1 Spark SQL前世今生 246
9.1.1 為什么需要SQL 246
9.1.2 常用的SQL on Hadoop框架 247
9.1.3 Spark SQL概述 248
任務2 Spark SQL編程 250
9.2.1 Spark SQL編程入口 250
9.2.2 DataFrame是什么 251
9.2.3 DataFrame編程 252
任務3 Spark SQL進階 259
9.3.1 Spark SQL外部數據源操作 259
9.3.2 Spark SQL函數的使用 263
9.3.3 Spark SQL常用調優 266
本章總結 269
本章作業 269
第10章 Spark Streaming 271
本章任務 272
任務1 初始流處理框架及
Spark Streaming 272
10.1.1 流處理框架概述 272
10.1.2 Spark Streaming概述 274
任務2 Spark Streaming編程 277
10.2.1 Spark Streaming核心概念 278
10.2.2 使用Spark Streaming編程 282
任務3 Spark Streaming進階 286
10.3.1 Spark Streaming整合Flume 287
10.3.2 Spark Streaming整合Kafka 290
10.3.3 Spark Streaming常用優化策略 294
本章總結 297
本章作業 297