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