基于Hadoop與Spark的大數(shù)據(jù)開發(fā)實戰(zhàn)
定 價:66.8 元
叢書名:新技術技能人才培養(yǎng)系列教程
- 作者:肖睿 丁科 吳剛山
- 出版時間:2018/4/1
- ISBN:9787115477644
- 出 版 社:人民郵電出版社
- 中圖法分類:TP274
- 頁碼:367
- 紙張:
- 版次:01
- 開本:16開
大數(shù)據(jù)技術讓我們以一種前所未有的方式,對海量數(shù)據(jù)進行分析,從中獲得有巨大價值的產(chǎn)品和服務,最終形成變革之力。本書圍繞Hadoop和Spark兩個主流大數(shù)據(jù)技術進行講解,主要內(nèi)容包括Hadoop環(huán)境配置、Hadoop分布式文件系統(tǒng)(HDFS)、Hadoop分布式計算框架MapReduce、Hadoop資源調(diào)度框架YARN與Hadoop新特性、Hadoop分布式數(shù)據(jù)庫HBase、數(shù)據(jù)倉庫Hive、大數(shù)據(jù)離線處理輔助系統(tǒng)、Spark Core、Spark SQL、Spark Streaming等知識。
本書緊密結合實際應用,運用大量案例說明和實踐,提煉含金量十足的開發(fā)經(jīng)驗。另外,本書配以多元的學習資源和支持服務,包括視頻教程、案例素材下載、學習交流社區(qū)、討論組等學習內(nèi)容,為讀者帶來全方位的學習體驗。
1、選取知識點核心實用,以互聯(lián)網(wǎng)+實現(xiàn)終身學習
2、以企業(yè)需求為設計導向,以任務驅動為講解方式
3、以案例為主線組織知識點,以實戰(zhàn)項目來提升技術
4、充分考慮學習者的認知曲線,由淺入深,邊講邊練
肖睿任職于北京課工場教育科技有限公司。課工場是專注互聯(lián)網(wǎng)教育的生態(tài)平臺,匯聚了中國和北美數(shù)百位來自知名互聯(lián)網(wǎng)企業(yè)的行業(yè)大咖,向尋求就業(yè)和技術提升的人群提供直播、錄播、面授等多模式教學場景,并通過遍布全國的線下服務中心提供成熟的學習服務,形成完善的“互聯(lián)網(wǎng)+教育”解決方案。同時,課工場也為高校、企業(yè)、行業(yè)提供教育技術賦能,依托Transformer智能教育生態(tài)平臺,打造智慧校園、企業(yè)大學、行業(yè)培訓的教育場景,提供一站式教育解決方案。
序言
前言
關于引用作品的版權聲明
第 1章Hadoop初體驗 1
任務1初識大數(shù)據(jù) 2
1.1.1 大數(shù)據(jù)基本概念 2
1.1.2 大數(shù)據(jù)帶來的挑戰(zhàn) 3
任務2初識Hadoop 3
1.2.1 Hadoop概述 4
1.2.2 Hadoop生態(tài)圈 6
1.2.3 Hadoop應用案例 8
任務3安裝Hadoop平臺 9
1.3.1 安裝虛擬機 10
1.3.2 安裝Linux系統(tǒng) 13
1.3.3 安裝Hadoop偽分布式環(huán)境 30
本章總結 34
本章練習 34
第 2章Hadoop分布式文件系統(tǒng) 35
任務1HDFS入門 36
2.1.1 認識HDFS 36
2.1.2 HDFS基礎 38
2.1.3 HDFS架構 40
任務2HDFS基本操作 41
2.2.1 使用HDFS shell訪問 41
2.2.2 使用Java API訪問 45
任務3HDFS運行原理 48
2.3.1 HDFS讀寫流程 49
2.3.2 HDFS副本機制 50
2.3.3 HDFS負載均衡 51
2.3.4 HDFS機架感知 52
任務4HDFS高級知識 53
2.4.1 Hadoop序列化機制 53
2.4.2 SequenceFile 58
2.4.3 MapFile 63
本章總結 65
本章練習 66
第3章Hadoop分布式計算框架 67
任務1認識MapReduce編程模型 68
3.1.1 MapReduce基礎 68
3.1.2 MapReduce編程模型 69
3.1.3 MapReduce詞頻統(tǒng)計編程實例 70
任務2MapReduce應用開發(fā) 75
3.2.1 MapReduce輸入/輸出類型 75
3.2.2 MapReduce輸入格式 76
3.2.3 MapReduce輸出格式 78
3.2.4 Combiner操作 79
3.2.5 Partitioner操作 82
3.2.6 自定義RecordReader 86
任務3MapReduce高級應用 92
3.3.1 使用MapReduce實現(xiàn)join操作 93
3.3.2 使用MapReduce實現(xiàn)排序 100
3.3.3 使用MapReduce實現(xiàn)二次排序 103
3.3.4 使用MapReduce合并小文件 108
本章總結 113
本章練習 113
第4章Hadoop新特性 115
任務1初識YARN 116
4.1.1 YARN產(chǎn)生背景 116
4.1.2 YARN簡介 117
4.1.3 YARN架構設計 119
任務2了解HDFS新特性 121
4.2.1 HDFS NameNode 高可用機制 121
4.2.2 HDFS NameNode Federation 129
4.2.3 HDFS Snapshots 130
4.2.4 HDFS REST API 134
4.2.5 DistCp工具 134
任務3了解YARN新特性 135
4.3.1 ResourceManager自動重啟 135
4.3.2 ResourceManager高可用機制 136
本章總結 139
本章練習 139
第5章Hadoop分布式數(shù)據(jù)庫 141
任務1認識HBase 142
5.1.1HBase簡介 142
5.1.2 HBase體系結構 143
5.1.3HBase數(shù)據(jù)模型 145
5.1.4HBase的安裝 148
任務2HBase Shell操作 155
5.2.1 HBase Shell簡介 155
5.2.2 HBase Shell的使用 156
任務3HBase編程 162
5.3.1 開發(fā)HBase應用程序 162
5.3.2HBase數(shù)據(jù)存儲管理API 163
本章總結 175
本章練習 175
第6章Hadoop綜合實戰(zhàn)——音樂排行榜 177
任務1MapReduce與HBase的集成 178
6.1.1 MapReduce與HBase的集成環(huán)境 178
6.1.2 批量數(shù)據(jù)導入(Bulk Loading) 181
任務2HBase MapReduce API 182
6.2.1HBase MapReduce API 簡介 182
6.2.2 TableMapper的使用 183
6.2.3 TableReducer的使用 195
任務3實現(xiàn)音樂排行榜 197
6.3.1 程序的結構與實現(xiàn) 198
6.3.2 HBase數(shù)據(jù)庫設計優(yōu)化 205
6.3.3 MapReduce全局共享數(shù)據(jù) 205
本章總結 207
本章練習 207
第7章數(shù)據(jù)倉庫Hive 209
任務1Hive基礎 210
7.1.1 認識Hive 210
7.1.2 Hive架構設計 211
7.1.3 Hive與Hadoop 212
7.1.4 Hive與傳統(tǒng)關系型數(shù)據(jù)庫 212
7.1.5 Hive數(shù)據(jù)存儲模型 213
7.1.6 Hive部署 213
任務2掌握Hive操作 214
7.2.1 Hive DDL 214
7.2.2 Hive DML 217
7.2.3 Hive shell 222
任務3Hive高級應用 223
7.3.1 Hive函數(shù) 224
7.3.2 Hive調(diào)優(yōu)策略 227
本章總結 232
本章練習 232
第8章大數(shù)據(jù)離線處理輔助系統(tǒng) 233
任務1認識并使用數(shù)據(jù)遷移框架Sqoop 234
8.1.1 Sqoop簡介 234
8.1.2 使用Sqoop導入MySQL數(shù)據(jù)到HDFS 239
8.1.3 使用Sqoop導出HDFS數(shù)據(jù)到MySQL 246
8.1.4 使用Sqoop導入MySQL數(shù)據(jù)到Hive 248
8.1.5 Sqoop Job 250
任務2使用Azkaban實現(xiàn)工作流調(diào)度 250
8.2.1 Azkaban概述 250
8.2.2 Azkaban環(huán)境部署 252
8.2.3 Azkaban應用實例 256
本章總結 259
本章練習 259
第9章Spark基礎 261
任務1Spark入門 262
9.1.1 Spark簡介 262
9.1.2 Spark優(yōu)勢 262
9.1.3 Spark生態(tài)圈 264
任務2Scala基礎 267
9.2.1 Scala簡介 268
9.2.2 Scala函數(shù)定義 271
9.2.3 Scala面向對象操作 272
9.2.4 Scala集合的使用 275
9.2.5 Scala高階函數(shù) 278
任務3編譯Spark 281
9.3.1 下載Spark源碼 281
9.3.2 編譯Spark源碼 282
任務4Spark初體驗 284
9.4.1 Spark環(huán)境部署 284
9.4.2 spark-shell 285
本章總結 286
本章練習 286
第 10章Spark Core 287
任務1Spark RDD 288
10.1.1 RDD介紹 288
10.1.2 RDD的創(chuàng)建 289
10.1.3 RDD的轉換算子 291
10.1.4 RDD的動作算子 293
10.1.5 RDD的依賴關系 295
任務2RDD高級應用 297
10.2.1 RDD緩存機制 297
10.2.2 共享變量 300
10.2.3 Spark架構設計 302
任務3基于RDD的Spark應用程序開發(fā) 303
10.3.1 準備工作 303
10.3.2 詞頻計數(shù)實例 304
10.3.3 年齡統(tǒng)計實例 308
本章總結 309
本章練習 309
第 11章Spark SQL 311
任務1認識Spark SQL 312
11.1.1 SQL 312
11.1.2 SQL on Hadoop框架 312
11.1.3 Spark SQL簡介 314
任務2Spark SQL編程基礎 315
11.2.1 Spark SQL編程入口 315
11.2.2 DataFrame基礎 317
11.2.3 DataFrame編程實例 318
任務3Spark SQL編程進階 325
11.3.1 Spark SQL操作外部數(shù)據(jù)源 325
11.3.2 Spark SQL函數(shù) 329
11.3.3 Spark SQL調(diào)優(yōu) 332
本章總結 334
本章練習 335
第 12章Spark Streaming 337
任務1流處理框架及Spark Streaming 338
12.1.1 流處理框架簡介 338
12.1.2 Spark Streaming簡介 340
任務2使用Spark Streaming編程 343
12.2.1 Spark Streaming核心 343
12.2.2 Spark Streaming編程實例 348
任務3Spark Streaming高級應用 352
12.3.1 使用Spark Streaming整合Flume 353
12.3.2 使用Spark Streaming整合Kafka 356
12.3.3 Spark Streaming優(yōu)化策略 361
本章總結 363
本章練習 363
附錄 365