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

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

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

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

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