實戰大數據 (Hadoop + Spark + Flink) 從平台構建到交互式數據分析 (離線/實時)
內容描述
《實戰大數據(Hadoop+Spark+Flink)——從平台構建到交互式數據分析(離線/實時)》
詳細介紹了大數據工程師在實際工作中應該熟練掌握的大數據技術。
全書共8章,分別是大數據技術概述、搭建IDEA開發環境及Linux虛擬機、基於Hadoop構建大數據平台、
基於HBase和Kafka構建海量數據存儲與交換系統、用戶行為離線分析—構建日誌採集和分析平台、
基於Spark的用戶行為實時分析、基於Flink的用戶行為實時分析、用戶行為數據可視化。
本書以一個完整的大數據項目為主線,涵蓋Hadoop、Spark、Flink等主流大數據技術,
按照大數據工程師的項目開發流程,理論與實踐結合,逐步推進,使讀者在學習大數據核心技術的同時,
也能掌握開發大數據項目的完整流程,從而獲得大數據項目開發經驗。
《實戰大數據(Hadoop+Spark+Flink)——從平台構建到交互式數據分析(離線/實時)》
既可以作為大數據工程師的必備開發手冊,也可以作為高校大數據及相關專業的教材或實驗手冊。
目錄大綱
前言
第1章 大數據技術概述1
1.1 什麼是大數據1
1.2 大數據ping台架構1
1.2.1 數據獲取2
1.2.2 數據存儲2
1.2.3 數據處理3
1.2.4 交互式分析3
1.2.5 機器學習與數據挖掘4
1.2.6 資源管理4
1.3 大數據工程師的技能樹4
1.3.1 大數據主流開發語言5
1.3.2 大數據ping台的構建5
1.3.3 大數據採集5
1.3.4 大數據存儲與交換5
1.3.5 大數據離線計算5
1.3.6 大數據實時計算6
1.4 大數據項目需求分析與設計6
1.4.1 項目需求分析6
1.4.2 系統架構設計7
1.4.3 離線和實時計算數據流程設計8
1.4.4 大數據ping台規劃8
1.5 本章小結9
第2章 搭建IDEA開發環境及Linux虛擬機10
2.1 搭建IDEA開發環境10
2.1.1 JDK 的安裝與配置10
2.1.2 Maven 的安裝與配置12
2.1.3 IDEA 的安裝與配置13
2.1.4 使用IDEA構建Maven項目17
2.2 搭建Linux虛擬機19
2.2.1 安裝Linux系統19
2.2.2 配置Linux靜態IP19
2.2.3 Linux主機名和IP映射20
2.2.4 關閉Linux防火牆20
2.2.5 創建Linux用戶和用戶組20
2.2.6 Linux SSH免密登錄21
2.3 本章小結22
第3章 基於Hadoop構建大數據ping台23
3.1 Zookeeper分佈式協調服務23
3.1.1 Zookeeper架構設計及原理23
3.1.2 Zookeeper集群安裝前的準備工作26
3.1.3 Zookeeper集群的安裝部署29
3.1.4 Zookeeper shell的操作32
3.2 HDFS分佈式文件系統34
3.2.1 HDFS架構設計及原理34
3.2.2 HDFS的高可用(HA)42
3.2.3 HDFS聯邦機制44
3.3 YARN資源管理系統44
3.3.1 YARN架構設計及原理45
3.3.2 MapReduce on YARN工作流程48
3.3.3 YARN的容錯性49
3.3.4 YARN的高可用(HA)49
3.3.5 YARN的調度器及使用50
3.4 Hadoop分佈式集群的構建53
3.4.1 HDFS分佈式集群的構建53
3.4.2 YARN分佈式集群的構建58
3.4.3 Hadoop集群運行測試61
3.4.4 Hadoop集群調優62
3.5 MapReduce分佈式計算框架64
3.5.1 MapReduce概述64
3.5.2 MapReduce編程模型67
3.5.3 MapReduce應用示例68
3.5.4 WordCount代碼實現70
3.6 本章小結72
第4章 基於HBase和Kafka構建海量數據存儲與交換系統73
4.1 構建HBase分佈式實時數據庫73
4.1.1 HBase概述73
4.1.2 HBase架構設計76
4.1.3 HBase分佈式集群的構建78
4.1.4 HBase性能調優82
4.1.5 HBase新聞業務表建模86
4.2 搭建Kafka分佈式消息系統86
4.2.1 Kafka概述86
4.2.2 Kafka架構設計87
4.2.3 Kafka分佈式集群的構建89
4.2.4 Kafka集群監控92
4.3 本章小結94
第5章 用戶行為離線分析——構建日誌採集和分析ping台95
5.1 搭建Flume日誌採集系統95
5.1.1 Flume概述95
5.1.2 Flume架構設計96
5.1.3 Flume環境的搭建98
5.1.4 構建Flume集群100
5.2 使用Flume採集用戶行為數據102
5.2.1 Flume與Kafka集成102
5.2.2 Flume與HBase集成104
5.2.3 Flume與Kafka、HBase集成109
5.3 基於Hive的離線大數據分析112
5.3.1 Hive概述112
5.3.2 Hive架構設計112
5.3.3 Hive的安裝部署117
5.3.4 Hive在大數據倉庫中的應用120
5.3.5 Hive與HBase集成121
5.4 基於Hive 的用戶行為數據離線分析122
5.4.1 離線項目架構設計122
5.4.2 用戶行為離線分析123
5.5 本章小結126
第6章 基於Spark的用戶行為實時分析127
6.1 Spark快速入門127
6.1.1 Spark概述127
6.1.2 Spark的#簡安裝128
6.1.3 Spark實現WordCount129
6.2 Spark Core的核心功能131
6.2.1 Spark架構的原理131
6.2.2 彈性分佈式數據集RDD132
6.2.3 Spark 算子133
6.2.4 Pair RDD及算子135
6.3 Spark分佈式集群的構建135
6.3.1 Spark的運行模式135
6.3.2 Standalone模式集群的構建136
6.3.3 Spark on YARN模式集群的構建139
6.4 基於Spark Streaming的新聞項目實時分析140
6.4.1 Spark Streaming概述140
6.4.2 Spark Streaming的運行原理141
6.4.3 Spark Streaming編程模型142
6.4.4 Spark Streaming實時分析用戶行為144
6.5 基於Spark SQL的新聞項目離線分析157
6.5.1 Spark SQL架構的原理157
6.5.2 Spark SQL與Hive、MySQL、HBase集成158
6.5.3 Spark SQL用戶行為離線分析162
6.6 基於Spark Structured Streaming 的新聞項目實時分析167
6.6.1 Structured Streaming概述167
6.6.2 Structured Streaming編程模型168
6.6.3 基於Structured Streaming的用戶行為實時分析168
6.7 本章小結173
第7章 基於Flink的用戶行為實時分析174
7.1 Flink快速入門174
7.1.1 Flink概述174
7.1.2 Flink的#簡安裝176
7.1.3 Flink實現WordCount177
7.2 Flink分佈式集群的構建181
7.2.1 Flink的運行模式181
7.2.2 Flink Standalone模式集群的構建181
7.2.3 Flink on YARN模式集群的構建184
7.3 基於Flink DataStream的新聞項目實時分析187
7.3.1 Flink DataStream概述187
7.3.2 Flink DataStream 編程模型188
7.3.3 Flink DataStream用戶行為實時
作者介紹
楊俊
大數據架構師。
大數據技術達人, Hadoop源碼級技術專家,擅長Hadoop、Spark、Flink等主流大數據生態技術。
具有近10年大數據開發經驗,參與過10餘個重量級大數據項目。
曾任廣電數據諮詢公司大數據高級架構師,負責大數據平台架構設計與實施,並構建企業級數據倉庫。
暢銷書《Hadoop大數據技術基礎與應用》作者。
51CTO知名培訓講師,擁有20餘萬粉絲,具有豐富的大數據技術培訓經驗,
為數十家企業、院校開展過大數據技術課程培訓。