階段一:走進大數(shù)據(jù)
第1周 學(xué)好大數(shù)據(jù)先攻克Linux
在步入大數(shù)據(jù)殿堂之前,先帶領(lǐng)大家快速掌握大數(shù)據(jù)的必備技能:Linux的操作使用,為后面學(xué)習(xí)大數(shù)據(jù)技術(shù)打下堅實基礎(chǔ)。
課程安排:
1、掌握Linux虛擬機的安裝和配置
2、使用ScecureCRT連接Linux虛擬機
3、掌握Linux中常見高級命令(vi、wc、sort、date、jps、kill等命令)的使用
4、掌握Linux中三劍客(grep、sed、awk)的常見用法
5、掌握Linux的高級配置(ip、hostname、防火墻)
6、掌握Shell腳本的開發(fā)
7、掌握Shell中變量、循環(huán)和判斷的使用
8、掌握Shell中的擴展內(nèi)容
9、掌握Linux中crontab定時器的使用
10、了解認識什么是大數(shù)據(jù)
11、大數(shù)據(jù)產(chǎn)生的背景
12、大數(shù)據(jù)的4V特征
13、大數(shù)據(jù)的行業(yè)應(yīng)用
第2周 大數(shù)據(jù)起源之初識Hadoop
Hadoop是大數(shù)據(jù)學(xué)習(xí)大數(shù)據(jù)必經(jīng)之路,本周帶領(lǐng)大家了解Hadoop,以及Hadoop集群的安裝部署。
課程安排:
1、什么是Hadoop
2、Hadoop發(fā)行版介紹
3、Hadoop版本演變歷史
4、Ha*****.x的細節(jié)優(yōu)化
5、Hadoop三大核心組件介紹
6、偽分布集群安裝部署
7、分布式集群安裝部署
8、Hadoop的客戶端節(jié)點
第3周 Hadoop之HDFS的使用
通過生活場景"小明租房"案例引入HDFS核心架構(gòu),掌握HDFS的常見Shell操作以及Java代碼操作,對以后實現(xiàn)海量數(shù)據(jù)的存儲打下基礎(chǔ)。
課程安排:
1、生活場景引入:"小明租房"案例一步一步引入Hadoop中的分布式存儲架構(gòu)
2、HDFS的Shell介紹
3、HDFS的常見Shell操作
4、HDFS案例實操
5、Java代碼操作HDFS
第4周 Hadoop之HDFS核心進程剖析
通過對HDFS中核心進程NameNode、SecondaryNameNode、DataNode進行詳細分析,幫助大家更好的理解HDFS的底層原理
課程安排:
1、NameNode介紹
2、NameNode深入
3、SecondaryNameNode介紹
4、DataNode介紹
5、HDFS的回收站
6、HDFS的安全模式詳解
7、實戰(zhàn):定時上傳數(shù)據(jù)至HDFS
8、HDFS的高可用和高擴展機制分析
第5周 Hadoop之初識MR
通過"計算撲克牌中的黑桃個數(shù)"案例引入MapReduce的思想,詳細分析了MapReduce的執(zhí)行流程,并且通過開發(fā)WordCount案例加深理解。
課程安排:
1、MapReduce介紹
2、 MapReduce執(zhí)行原理
3、實戰(zhàn):WordCount案例圖解
4、實戰(zhàn):WordCount案例開發(fā)
5、MapReduce任務(wù)日志查看
6、停止Hadoop集群中的任務(wù)
7、MapReduce程序擴展
階段二:PB級離線數(shù)據(jù)計算分析方案
第6周 拿來就用的企業(yè)級解決方案
詳細分析了小文件的解決方案、數(shù)據(jù)傾斜的解決方案、YARN調(diào)度器的使用、以及Hadoop在CDH和HDP中的使用。
課程安排:
1、小文件問題之SequenceFile
2、小文件問題之MapFile
3、案例:小文件存儲和計算
4、 數(shù)據(jù)傾斜問題分析
5、數(shù)據(jù)傾斜案例實戰(zhàn)
6、YARN的基本情況介紹
7、YARN中的調(diào)度器分析
8、案例:YARN多資源隊列配置和使用
9、Hadoop官方文檔使用指北
10、Hadoop在CDH中的使用
11、Hadoop在HDP中的使用
第7周 Flume從0到高手一站式養(yǎng)成記
Flume是一個分布式、高可靠、高可用的系統(tǒng),能夠有效的收集、聚合、移動大量的日志數(shù)據(jù),在數(shù)據(jù)采集領(lǐng)域,屬于中流砥柱,在這里通過原理、實戰(zhàn)、監(jiān)控、優(yōu)化等層面對Flume進行學(xué)習(xí)。
課程安排:
1、快速了解Flume
2、Flume的三大核心組件
3、Flume安裝部署
4、Flume的Hello World
5、案例:采集文件內(nèi)容上傳至HDFS
6、Flume高級組件之Source Interceptors
7、Flume高級組件之Channel Selectors
8、Flume高級組件之Sink Processors
9、各種自定義組件
10、Flume優(yōu)化
11、Flume進程監(jiān)控
第8周 數(shù)據(jù)倉庫Hive從入門到小牛
頻繁的開發(fā)MapReduce是非常繁瑣的,并且很多業(yè)務(wù)人員是不懂代碼的,如何讓他們也可以很方便的操作HDFS中的海量數(shù)據(jù)呢?Hive的橫空出世,解決了這一難題。
課程安排:
1、快速了解Hive
2、數(shù)據(jù)庫和數(shù)據(jù)倉庫的區(qū)別
3、Hive安裝部署
4、Hive使用方式之命令行方式
5、Hive使用方式之JDBC方式
6、Set命令的使用
7、Hive的日志配置
8、Hive中數(shù)據(jù)庫的操作
9、Hive中表的操作
10、Hive中數(shù)據(jù)類型的應(yīng)用
11、Hive表類型之內(nèi)部表+外部表
12、Hive表類型之內(nèi)部分區(qū)表
13、Hive表類型之外部分區(qū)表
14、Hive表類型之桶表+視圖
15、Hive數(shù)據(jù)處理綜合案例
16、Hive高級函數(shù)之分組排序取TopN
17、Hive高級函數(shù)之行轉(zhuǎn)列
18、Hive高級函數(shù)之列轉(zhuǎn)行
19、Hive的排序函數(shù)
20、Hive的分組和去重函數(shù)
21、一個SQL語句分析
22、Hive的Web工具-HUE
階段三:Spark+綜合項目:電商數(shù)據(jù)倉庫設(shè)計與實戰(zhàn)
第9周 7天極速掌握Scala語言
Scala的函數(shù)式編程受到很多框架的青睞,例如Kafka、Spark、Flink等框架都是使用Scala作為底層源碼開發(fā)語言,下面就帶著大家7天極速掌握Scala語言。
課程安排:
1、快速了解Scala
2、Scala環(huán)境安裝配置
3、Scala中的變量和數(shù)據(jù)類型
4、Scala中的表達式和循環(huán)
5、Scala集合體系之Set+List+Map
6、Scala中的Array和Tuple
7、Scala中函數(shù)的使用
8、Scala面向?qū)ο笾惖氖褂?/p>
9、Scala面向?qū)ο笾畬ο蠛桶樯鷮ο?/p>
10、Scala面向?qū)ο笾產(chǎn)pply和main的使用
11、Scala面向?qū)ο笾涌诘氖褂?/p>
12、Scala函數(shù)式編程之匿名函數(shù)和高階函數(shù)的使用
13、Scala高級特性之模式匹配和隱式轉(zhuǎn)換
第10周 Spark快速上手
Spark是目前企業(yè)中應(yīng)用廣泛的計算引擎,盤它!實際案例詳細分析Spark中的Transformation算子和Action算子使用,RDD持久化,共享變量使用,通過一個綜合案例加深理解。
課程安排:
1、快速了解Spark
2、Spark 集群安裝部署(Standalone+ON YARN)
3、Spark工作原理分析
4、什么是RDD
5、Spark架構(gòu)原理
6、Spark項目開發(fā)環(huán)境配置
7、WordCount代碼開發(fā)(Java+Scala)
8、Spark任務(wù)的三種提交方式
9、Spark開啟historyServer服務(wù)
10、創(chuàng)建RDD的三種方式
11、Transformation和Action介紹
12、Transformation操作開發(fā)實戰(zhàn)
13、Action操作開發(fā)實戰(zhàn)
14、RDD持久化原理
15、RDD持久化開發(fā)實戰(zhàn)
16、共享變量之Broadcast Variable的使用
17、共享變量之Accumulator的使用
18、案例實戰(zhàn):TopN主播統(tǒng)計
19、面試題
第11周 Spark性能優(yōu)化的道與術(shù)
通過對Spark中的寬依賴、窄依賴、Stage、Shuffle機制進行詳細分析,加深對Spark的理解,以及對Spark中的checkpoint機制通過源碼層面進行深度剖析。
課程安排:
1、寬依賴和窄依賴
2、Stage的理解
3、Spark任務(wù)的三種提交模式
4、Shuffle介紹
5、三種Shuffle機制分析
6、checkpoint概述
7、checkpoint和持久化的區(qū)別
8、checkpoint代碼開發(fā)和執(zhí)行分析
9、checkpoint源碼分析之寫操作和讀操作
10、Spark程序性能優(yōu)化分析
11、高性能序列化類庫Kryo的使用
12、持久化或者checkpoint
13、JVM垃圾回收調(diào)憂
14、提高并行度
15、數(shù)據(jù)本地化
16、算子優(yōu)化
17、SparkSql快速上手使用
18、實戰(zhàn):SparkSQL實現(xiàn)TopN主播統(tǒng)計
第12周 綜合項目:電商數(shù)據(jù)倉庫之用戶行為數(shù)倉
整合各個業(yè)務(wù)線數(shù)據(jù),為各個業(yè)務(wù)系統(tǒng)提供統(tǒng)一&規(guī)范的數(shù)據(jù)出口。通過對項目的由來,需求、技術(shù)進行分析和選型,實現(xiàn)用戶行為數(shù)據(jù)數(shù)倉開發(fā)。
課程安排:
1、項目效果展示
2、項目的由來
3、什么是數(shù)據(jù)倉庫
4、數(shù)據(jù)倉庫基礎(chǔ)知識
5、數(shù)據(jù)倉庫分層
6、典型數(shù)倉系統(tǒng)架構(gòu)分析
7、技術(shù)選型
8、整體架構(gòu)設(shè)計
9、服務(wù)器資源規(guī)劃
10、生成用戶行為數(shù)據(jù)【客戶端數(shù)據(jù)】
11、生成商品訂單相關(guān)數(shù)據(jù)【服務(wù)端數(shù)據(jù)】
12、采集用戶行為數(shù)據(jù)【客戶端數(shù)據(jù)】
13、Sqoop安裝部署
14、Sqoop之?dāng)?shù)據(jù)導(dǎo)入功能
15、Sqoop之?dāng)?shù)據(jù)導(dǎo)出功能
16、采集商品訂單相關(guān)數(shù)據(jù)【服務(wù)端數(shù)據(jù)】
17、用戶行為數(shù)據(jù)數(shù)倉開發(fā)之ods層開發(fā)
18、用戶行為數(shù)據(jù)數(shù)倉開發(fā)之ods層腳本抽取
19、用戶行為數(shù)據(jù)數(shù)倉開發(fā)之dwd層開發(fā)
20、用戶行為數(shù)據(jù)數(shù)倉開發(fā)之dwd層腳本抽取
21、用戶行為數(shù)據(jù)數(shù)倉需求分析
22、用戶行為數(shù)據(jù)數(shù)倉需求開發(fā)
23、用戶行為數(shù)據(jù)數(shù)倉表和任務(wù)腳本總結(jié)
第13周 綜合項目:電商數(shù)據(jù)倉庫之商品訂單數(shù)倉
基于商品訂單數(shù)據(jù)開發(fā)數(shù)倉,詳細分析了拉鏈表的由來和具體實現(xiàn)。使用數(shù)據(jù)可視化工具Zepplin實現(xiàn)數(shù)據(jù)展現(xiàn),使用Azkaban調(diào)度器實現(xiàn)任務(wù)依賴調(diào)度。
課程安排:
1、商品訂單數(shù)據(jù)數(shù)倉開發(fā)之ods層和dwd層
2、商品訂單數(shù)據(jù)數(shù)倉需求分析與開發(fā)
3、什么是拉鏈表
4、如何制作拉鏈表
5、【實戰(zhàn)】基于訂單表的拉鏈表實現(xiàn)
6、拉鏈表的性能問題分析
7、商品訂單數(shù)據(jù)數(shù)倉表和任務(wù)腳本總結(jié)
8、數(shù)據(jù)可視化之Zepplin的安裝部署和參數(shù)配置
9、數(shù)據(jù)可視化之Zepplin的使用
10、任務(wù)調(diào)度之Crontab調(diào)度器的使用
11、任務(wù)調(diào)度之Azkaban的安裝部署
12、任務(wù)調(diào)度之Azkaban提交獨立任務(wù)
13、任務(wù)調(diào)度之Azkaban提交依賴任務(wù)
14、任務(wù)調(diào)度之在數(shù)倉中使用Azkaban
15、項目優(yōu)化
階段四:高頻實時數(shù)據(jù)處理方案
第14周 消息隊列之Kafka從入門到小牛
Kafka是一個支持高吞吐、持久性、分布式的消息隊列,非常適合海量數(shù)據(jù)的實時生產(chǎn)和消費,詳細分析了Kafka的核心原理、代碼實戰(zhàn)、性能優(yōu)化,以及Kafka的企業(yè)級應(yīng)用。
課程安排:
1、什么是消息隊列
2、什么是Kafka
3、Zookeeper安裝部署之單機模式和集群模式
4、 Kafka安裝部署之單機模式和集群模式
5、Kafka中的生產(chǎn)者和消費者
6、案例:QQ群聊天
7、Broker擴展內(nèi)容
8、Producer擴展內(nèi)容
9、Consumer擴展內(nèi)容
10、Topic+Partition+Message擴展內(nèi)容
11、Kafka中的存儲策略
12、Kafka中的容錯機制
13、Java代碼實現(xiàn)生產(chǎn)者代碼
14、Java代碼實現(xiàn)消費者代碼
15、消費者代碼擴展
16、Consumer消費Offset查詢
17、Consumer消費順序
18、Kafka的三種語義
19、Kafka參數(shù)調(diào)憂之JVM參數(shù)調(diào)憂
20、Kafka參數(shù)調(diào)憂之Replication參數(shù)調(diào)憂
21、Kafka參數(shù)調(diào)憂之Log參數(shù)調(diào)憂
22、Kafka Topic命名小技巧
23、Kafka集群監(jiān)控管理工具(CMAK)
24、實戰(zhàn):Flume集成Kafka
25、實戰(zhàn):Kafka集群平滑升級
第15周 極速上手內(nèi)存數(shù)據(jù)庫Redis
Redis是一種面向鍵值對的NoSQL內(nèi)存數(shù)據(jù)庫,可以滿足我們對海量數(shù)據(jù)的讀寫需求,在這里我們學(xué)習(xí)Redis中的五種常用數(shù)據(jù)類型以及Redis中的一些高級特性,達到快速上手使用。
課程安排:
1、快速了解Redis
2、Redis的安裝部署
3、Redis基礎(chǔ)命令
4、Redis多數(shù)據(jù)庫特性
5、Redis常用數(shù)據(jù)類型之String
6、Redis常用數(shù)據(jù)類型之Hash
7、Redis常用數(shù)據(jù)類型之List
8、Redis常用數(shù)據(jù)類型之Set
9、Redis常用數(shù)據(jù)類型之Sorted Set
10、案例:存儲高一班的學(xué)員信息
11、Java代碼操作Redis之單連接
12、Java代碼操作Redis之連接池
13、提取RedisUtils工具類
14、Redis高級特性之expire
15、Redis高級特性之pipeline
16、Redis高級特性之info
17、Redis持久化之RDB
18、Redis持久化之AOF
19、Redis的安全策略
20、Redis監(jiān)控命令-monitor
21、Redis架構(gòu)演進過程
第16周 Flink快速上手篇
快速了解Flink的基本原理和核心特點,掌握Flink中流數(shù)據(jù)和批數(shù)據(jù)的編程思路和代碼實戰(zhàn),F(xiàn)link中Standalone集群、ON YARN集群的安裝部署,以及Flink中核心API的使用。
課程安排:
1、快速了解Flink
2、Flink Streaming程序開發(fā)
3、Flink Batch程序開發(fā)
4、Flink Standalone集群安裝部署
5、Flink ON YARN的第1種方式
6、Flink ON YARN的第2種方式
7、向集群中提交Flink任務(wù)
8、Flink核心API介紹
9、DataStream API之DataSource
10、DataStream API之Transformation
11、DataStream API之分區(qū)規(guī)則介紹
12、DataStream API之分區(qū)規(guī)則的使用
13、DataStream API之DataSink
14、DataSet API之DataSource
15、DataSet API之Transformation
16、DataSet API之DataSink
17、Table API 和 SQL介紹
18、創(chuàng)建TableEnvironment對象
19、TableAPI和SQL的使用
20、使用DataStream創(chuàng)建表
21、使用DataSet創(chuàng)建表
22、將表轉(zhuǎn)換成DataStream
22、將表轉(zhuǎn)換成DataSet
第17周 Flink高級進階之路
詳細剖析Window和Time的使用,Watermark的實戰(zhàn)應(yīng)用,并行度的設(shè)置,Kafka Connector的具體應(yīng)用,以及SparkStreaming的特性和使用。
課程安排:
1、Window的概念和類型
2、TimeWindow的使用
3、CountWindow的使用
4、自定義Window的使用
5、Window中的增量聚合和全量聚合
6、Flink中的Time
7、Watermark的分析
8、開發(fā)Watermark代碼
9、通過數(shù)據(jù)跟蹤觀察Watermark
10、Watermark+EventTime處理亂序數(shù)據(jù)
11、延遲數(shù)據(jù)的三種處理方式
12、在多并行度下的Watermark應(yīng)用
13、Watermark案例總結(jié)
14、并行度介紹及四種設(shè)置方式
15、并行度案例分析
16、KafkaConsumer的使用
17、KafkaConsumer消費策略設(shè)置
18、KafkaConsumer的容錯
19、KafkaProducer的使用
20、KafkaProducer的容錯
21、SparkStreaming的WordCount程序開發(fā)
22、SparkStreaming整合Kafka
階段五:綜合項目:三度關(guān)系推薦系統(tǒng)+數(shù)據(jù)中臺
第18周 直播平臺三度關(guān)系推薦V1.0
構(gòu)建直播平臺用戶三度關(guān)系推薦系統(tǒng),詳細分析數(shù)據(jù)采集/數(shù)據(jù)分發(fā)/數(shù)據(jù)存儲/數(shù)據(jù)計算/數(shù)據(jù)展現(xiàn)等功能,完整復(fù)現(xiàn)互聯(lián)網(wǎng)企業(yè)大數(shù)據(jù)項目從0~1,從1~N的開發(fā)過程。
課程安排:
1、項目介紹
2、項目需求分析
3、技術(shù)選型
4、整體架構(gòu)設(shè)計
5、Neo4j快速上手使用
6、數(shù)據(jù)采集架構(gòu)詳細分析
7、數(shù)據(jù)來源分析
8、模擬產(chǎn)生數(shù)據(jù)
9、數(shù)據(jù)采集聚合
10、數(shù)據(jù)分發(fā)
11、數(shù)據(jù)落盤
12、數(shù)據(jù)計算核心指標(biāo)詳細分析與實現(xiàn)
13、三度關(guān)系推薦頁面數(shù)據(jù)接入
14、三度關(guān)系推薦流程演示
15、項目代碼雙語支持
16、項目總結(jié)
第19周 直播平臺三度關(guān)系推薦V2.0
分析V1.0架構(gòu)存在的問題及弊端,重新設(shè)計整體架構(gòu)方案,進行迭代優(yōu)化,基于新的架構(gòu)方案重新實現(xiàn)核心功能代碼,開發(fā)數(shù)據(jù)接口,優(yōu)化數(shù)據(jù)傳輸邏輯,提高數(shù)據(jù)安全性。
課程安排:
1、現(xiàn)有V1.0技術(shù)架構(gòu)分析
2、V2.0技術(shù)架構(gòu)設(shè)計
3、數(shù)據(jù)計算核心指標(biāo)詳細分析
4、歷史粉絲關(guān)注數(shù)據(jù)初始化
5、實時維護粉絲關(guān)注數(shù)據(jù)
6、每天定時更新主播等級
7、每天定時更新用戶活躍時間
8、每周一計算一月主播視頻評級
9、每周一計算一月主播視頻評級
10、三度關(guān)系列表數(shù)據(jù)導(dǎo)出到Redis
11、數(shù)據(jù)接口定義與開發(fā)
12、項目代碼雙語支持
13、項目總結(jié)
第20周 數(shù)據(jù)中臺大屏
掌握一線互聯(lián)網(wǎng)企業(yè)數(shù)據(jù)中臺構(gòu)建流程,了解巨頭企業(yè)的項目架構(gòu),理解巨型項目的思想,掌握數(shù)據(jù)中臺之?dāng)?shù)據(jù)加工總線子系統(tǒng)的底層實現(xiàn)。
課程安排:
1、什么是中臺
2、中臺化主要解決的問題
3、中臺的延伸
4、什么是數(shù)據(jù)中臺
5、數(shù)據(jù)中臺演進的四個階段
6、數(shù)據(jù)中臺需要具備三大能力
7、企業(yè)級數(shù)據(jù)中臺架構(gòu)分析
9、目前大數(shù)據(jù)領(lǐng)域?qū)崟r計算的現(xiàn)狀
10、數(shù)據(jù)中臺之?dāng)?shù)據(jù)加工總線介紹
11、數(shù)據(jù)加工總線架構(gòu)圖分析
12、開發(fā)數(shù)據(jù)加工總線計算引擎(基于SparkSQL)
13、開發(fā)數(shù)據(jù)加工總線計算引擎(基于FlinkSQL)
14、掌握如何在流式SQL中調(diào)用HTTP接口
15、支持流式SQL中的自定義函數(shù)返回多列字段