課程長度:4天/24小時
課程描述:
Hadoop、Yarn、Spark是企業(yè)構(gòu)建生產(chǎn)環(huán)境下大數(shù)據(jù)中心的關(guān)鍵技術(shù),也是大數(shù)據(jù)處理的核心技術(shù),是每個云計算大數(shù)據(jù)工程師必修課。
大數(shù)據(jù)時代的精髓技術(shù)在于Hadoop、Yarn、Spark,是大數(shù)據(jù)時代公司和個人必須掌握和使用的核心內(nèi)容。
Hadoop、Yarn、Spark是Yahoo!、阿里淘寶等公司公認的大數(shù)據(jù)時代的三大核心技術(shù),是大數(shù)據(jù)處理的靈魂,是云計算大數(shù)據(jù)時代的技術(shù)命脈之所在,以Hadoop、Yarn、Spark為基石構(gòu)建起來云計算大數(shù)據(jù)中心廣泛運行于Yahoo!、阿里淘寶、騰訊、百度、Sohu、華為、優(yōu)酷土豆、亞馬遜等公司的生產(chǎn)環(huán)境中。
Hadoop、Yarn、Spark三者相輔相成
.Hadoop中的HDFS是大數(shù)據(jù)時代公認的首選數(shù)據(jù)存儲方式;
.Yarn是目前公認的較佳的分布式集群資源管理框架;
.Spark是目前公認的大數(shù)據(jù)統(tǒng)一計算平臺;
工業(yè)和信息化部電信研究院于2014年5月發(fā)布的“大數(shù)據(jù)白皮書”中指出:
“2012 年美國聯(lián)邦政府就在全球率先推出“大數(shù)據(jù)行動計劃(Big data initiative)”,重點在基礎(chǔ)技術(shù)研究和公共部門應(yīng)用上加大投入。在該計劃支持下,加州大學(xué)伯克利分校開發(fā)了完整的大數(shù)據(jù)開源軟件平臺“伯克利數(shù)據(jù)分析軟件棧(Berkeley Data Analytics Stack),其中的內(nèi)存計算軟件Spark的性能比Hadoop 提高近百倍,對產(chǎn)業(yè)界大數(shù)據(jù)技術(shù)走向產(chǎn)生巨大影響”
----來源:工業(yè)和信息化部電信研究院

Spark是繼Hadoop之后,成為替代Hadoop的下一代云計算大數(shù)據(jù)核心技術(shù)。目前SPARK已經(jīng)構(gòu)建了自己的整個大數(shù)據(jù)處理生態(tài)系統(tǒng),如流處理、圖技術(shù)、機器學(xué)習(xí)、Interactive Ad-Hoc Query等方面都有自己的技術(shù),并且是ApacheProject,可以預(yù)計的是2014年下半年到2015年在社區(qū)和商業(yè)應(yīng)用上會有爆發(fā)式的增長。

國外一些大型互聯(lián)網(wǎng)公司已經(jīng)部署了Spark。甚至連Hadoop的早期主要貢獻者Yahoo現(xiàn)在也在多個項目中部署使用Spark;國內(nèi)的淘寶、優(yōu)酷土豆、網(wǎng)易、Baidu、騰訊、皮皮網(wǎng)等已經(jīng)使用Spark技術(shù)用于自己的商業(yè)生產(chǎn)系統(tǒng)中,國內(nèi)外的應(yīng)用開始越來越廣泛。Spark正在逐漸走向成熟,并在這個領(lǐng)域扮演更加重要的角色。
剛剛結(jié)束的2014 Spark Summit上的信息,Spark已經(jīng)獲得世界20家公司的支持,這些公司中包括Intel、IBM等,同時更重要的是包括了較大的四個Hadoop發(fā)行商(Cloudera,Pivotal, MapR, Hortonworks)都提供了對非常強有力的支持Spark的支持,尤其是是Hadoop的頭號發(fā)行商Cloudera在2014年7月份宣布“Impala’s itfor interactive SQL on Hadoop; everything else will move to Spark”,具體鏈接信息 http://t.cn/Rvdsukb,而其實在這次SparkSummit之前,整個云計算大數(shù)據(jù)就已經(jīng)發(fā)聲巨變:
1,2014年5月24日Pivotal宣布了會把整個Spark stack包裝在Pivotal HD Hadoop發(fā)行版里面。這意味這較大的四個Hadoop發(fā)行商(Cloudera, Pivotal, MapR,Hortonworks)都提供了對Spark的支持。http://t.cn/RvLF7aM星火燎原的開始;
2,Mahout前一階段表示從現(xiàn)在起他們將不再接受任何形式的以MapReduce形式實現(xiàn)的算法,另外一方面,Mahout宣布新的算法基于Spark;
3,Cloudera的機器學(xué)習(xí)框架Oryx的執(zhí)行引擎也將由Hadoop的MapReduce替換成Spark;
4,Google已經(jīng)開始將負載從MapReduce轉(zhuǎn)移到Pregel和Dremel上;
5,F(xiàn)aceBook則將原來使用Hadoop的負載轉(zhuǎn)移到Presto上;
現(xiàn)在很多原來使用深度使用Hadoop的公司都在紛紛轉(zhuǎn)向Spark,國內(nèi)的淘寶是典型的案例,國外的典型是Yahoo!,我們以使用世界上使用Hadoop較典型的公司Yahoo!為例,大家可以從Yahoo!的數(shù)據(jù)處理的架構(gòu)圖看出Yahoo!內(nèi)部正在使用Spark:

不得不提的是Spark的“One stack torule them all”的特性,Spark的特點之一就是用一個技術(shù)堆棧解決云計算大數(shù)據(jù)中流處理、圖技術(shù)、機器學(xué)習(xí)、交互式查詢、誤差查詢等所有的問題,此時我們只需要一個技術(shù)團隊通過Spark就可以搞定一切問題,而如果基于Hadoop就需要分別構(gòu)建實時流處理團隊、數(shù)據(jù)統(tǒng)計分析團隊、數(shù)據(jù)挖掘團隊等,而且這些團隊之間無論是代碼還是經(jīng)驗都不可相互借鑒,會形成巨大的成本,而使用Spark就不存在這個問題;
伴隨Spark技術(shù)的普及推廣,對專業(yè)人才的需求日益增加。Spark專業(yè)人才在未來也是炙手可熱,作為Spark人員,需要掌握的技能模型如下:

學(xué)員基礎(chǔ):
對云計算有強烈的興趣,能夠看懂基本的Java語法。
培訓(xùn)對象:
1.對云計算、分布式數(shù)據(jù)存儲于處理、大數(shù)據(jù)等感興趣的朋友
2.傳統(tǒng)的數(shù)據(jù)庫,例如Oracle、MaySQL、DB2等的管理人員
3.Java、C等任意一門編程語言的開發(fā)者;
4.網(wǎng)站服務(wù)器端的開發(fā)人員
5.在校大學(xué)生、中專生或者剛畢業(yè)的學(xué)生
6.云計算大數(shù)據(jù)從業(yè)者;
7.熟悉Hadoop生態(tài)系統(tǒng),想了解和學(xué)習(xí)Hadoop與Spark整合在企業(yè)應(yīng)用實戰(zhàn)案例的朋友;
8.系統(tǒng)架構(gòu)師、系統(tǒng)分析師、高級程序員、資深開發(fā)人員;
9.牽涉到大數(shù)據(jù)處理的數(shù)據(jù)中心運行、規(guī)劃、設(shè)計負責(zé)人;
10.政府機關(guān),金融保險、移動和互聯(lián)網(wǎng)等大數(shù)據(jù)來源單位的負責(zé)人;
11.高校、科研院所涉及到大數(shù)據(jù)與分布式數(shù)據(jù)處理的項目負責(zé)人;
12.數(shù)據(jù)倉庫管理人員、建模人員,分析和開發(fā)人員、系統(tǒng)管理人員、數(shù)據(jù)庫管理人員以及對數(shù)據(jù)倉庫感興趣的其他人員;
課程目標:
直接上手Hadoop工作,具備直接勝任Hadoop開發(fā)工程師的能力;輕松駕馭以Spark為核心的云計算大數(shù)據(jù)實戰(zhàn)技術(shù),從容解決95%以上的云計算大數(shù)據(jù)業(yè)務(wù)需求;
?徹底理解Hadoop 代表的云計算實現(xiàn)技術(shù)的能力
?具備開發(fā)自己網(wǎng)盤的能力
?具備修改HDFS具體源碼實現(xiàn)的能力
?從代碼的角度剖析MapReduce執(zhí)行的具體過程并具備開發(fā)MapReduce代碼的能力
?具備掌握Hadoop如何把HDFS文件轉(zhuǎn)化為Key-Value讓供Map調(diào)用的能力
?具備掌握MapReduce內(nèi)部運行和實現(xiàn)細節(jié)并改造MapReduce的能力
?掌握Spark的企業(yè)級開發(fā)的所有核心內(nèi)容,包括Spark集群的構(gòu)建,Spark架構(gòu)設(shè)計、Spark內(nèi)核剖析、Shark、Spark SQL、Spark Streaming、圖計 算GraphX、機器學(xué)習(xí)等;
?掌握Spark和Hadoop協(xié)同工作,能夠通過Spark和Hadoop輕松應(yīng)對大數(shù)據(jù)的業(yè)務(wù)需求;
?掌握企業(yè)線上生產(chǎn)系統(tǒng)中應(yīng)用Spark /Hadoop成功案例,以及與現(xiàn)有企業(yè)BI平臺整合的方案;
培訓(xùn)職業(yè)目標:
?Hadoop工程師,能夠開發(fā)的Hadoop分布式應(yīng)用
?Hadoop完整項目的分析、開發(fā)、部署的全過程的能力
?Spark高級工程師
?大數(shù)據(jù)項目總負責(zé)人
?云計算大數(shù)據(jù)CTO
培訓(xùn)內(nèi)容:
時間
內(nèi)容
天
第1個主題:Hadoop三問(徹底理解Hadoop)
1、 Hadoop為什么是云計算分布式大數(shù)據(jù)的事實開源標準軟件框架?
2、Hadoop的具體是如何工作?
3、Hadoop的生態(tài)架構(gòu)和每個模塊具體的功能是什么?
第2個主題:Hadoop集群與管理(具備構(gòu)建并駕馭Hadoop集群能力)
1、 Hadoop集群的搭建
2、 Hadoop集群的監(jiān)控
3、 Hadoop集群的管理
4、集群下運行MapReduce程序
第3主題:徹底掌握HDFS(具備開發(fā)自己網(wǎng)盤的能力)
1、HDFS體系架構(gòu)剖析
2、NameNode、DataNode、SecondaryNameNode架構(gòu)
3、保證NodeName高可靠性較佳實踐
4、DataNode中Block劃分的原理和具體存儲方式
5、修改Namenode、DataNode數(shù)據(jù)存儲位置
6、使用CLI操作HDFS
7、使用Java操作HDFS
第4主題:徹底掌握HDFS(具備修改HDFS具體源碼實現(xiàn)的能力)
1、RPC架構(gòu)剖析
2、源碼剖析Hadoop構(gòu)建于RPC之上
3、源碼剖析HDFS的RPC實現(xiàn)
4、源碼剖析客戶端與與NameNode的RPC通信
第二天
第1個主題:徹底掌握MapReduce(從代碼的角度剖析MapReduce執(zhí)行的具體過程并具備開發(fā)MapReduce代碼的能力)
1、MapReduce執(zhí)行的經(jīng)典步驟
2、wordcount運行過程解析
3、Mapper和Reducer剖析
4、自定義Writable
5、新舊API的區(qū)別以及如何使用就API
6、把MapReduce程序打包成Jar包并在命令行運行
第2個主題:徹底掌握MapReduce(具備掌握Hadoop如何把HDFS文件轉(zhuǎn)化為Key-Value讓供Map調(diào)用的能力)
1、 Hadoop是如何把HDFS文件轉(zhuǎn)化為鍵值對的?
2、源碼剖析Hadoop讀取HDFS文件并轉(zhuǎn)化為鍵值對的過程實現(xiàn)
3、源碼剖析轉(zhuǎn)化為鍵值對后供Map調(diào)用的過程實現(xiàn)
第3個主題:徹底掌握MapReduce(具備掌握MapReduce內(nèi)部運行和實現(xiàn)細節(jié)并改造MapReduce的能力)
1、 Hadoop內(nèi)置計數(shù)器及如何自定義計數(shù)器
2、 Combiner具體的作用和使用以及其使用的限制條件
3、 Partitioner的使用較佳實踐
4、 Hadoop內(nèi)置的排序算法剖析
5、自定義排序算法
6、 Hadoop內(nèi)置的分組算法
7、自定義分組算法
8、MapReduce常見場景和算法實現(xiàn)
第4個主題:某知名電商公司Hadoop實施全程揭秘(具備掌握商業(yè)級別Hadoop的分析、開發(fā)、部署的全過程的能力)
通過電商公司現(xiàn)場案例展示商業(yè)級別一個完整項目的分析、開發(fā)、部署的全過程
第三天
第1個主題:YARN(具備理解和使用YARN的能力)
1、YARN的設(shè)計思想
2、YARN的核心組件
3、YARN的共組過程
4、YARN應(yīng)用程序編寫
第2個主題:ResourceManager深度剖析(具備深刻理解ResourceManager的能力)
1、ResourceManager的架構(gòu)
2、ClientRMService 與AdminService
3、NodeManager
4、Container
5、 Yarn的 HA機制
第3個主題:NodeManager深度剖析(具備掌握NodeManager及Container的能力)
1、 NodeManager架構(gòu)
2、 ContainerManagement
3、 Container lifecycle
4、 資源管理與隔離
第4堂課:Spark的架構(gòu)設(shè)計(具備掌握Spark架構(gòu)的能力)
1.1 Spark生態(tài)系統(tǒng)剖析
1.2 Spark的架構(gòu)設(shè)計剖析
1.3 RDD計算流程解析
1.4 Spark的出色容錯機制
第四天
第1堂課:深入Spark內(nèi)核
1 Spark集群
2 任務(wù)調(diào)度
3 DAGScheduler
4 TaskScheduler
5 Task內(nèi)部揭秘
第2堂課:SparkSQL
1 Parquet支持
2 DSL
3 SQL on RDD
第3堂課:Spark的機器學(xué)習(xí)
1 LinearRegression
2 K-Means
3 Collaborative Filtering
第4堂課:Spark的圖計算GraphX
1 Table Operators
2 Graph Operators
3 GraphX