【課程安排】
01) Linux基礎(chǔ)操作
本節(jié)講解linux基礎(chǔ)操作,主要是在命令行下進(jìn)行文件系統(tǒng)的操作,這是hadoop學(xué)習(xí)的基礎(chǔ),后面的所有視頻都是基于linux操作的。鑒于很多學(xué)員沒有l(wèi)inux基礎(chǔ),特增加該內(nèi)容。
02) 搭建偽分布實(shí)驗(yàn)環(huán)境
本節(jié)是最基本的課程,屬于入門級(jí)別,主要講述在linux單機(jī)上面安裝hadoop的偽分布模式,在linux集群上面安裝hadoop集群。對于不熟悉linux的同學(xué), 課程中會(huì)簡單的講解常用的linux命令。這兩種是必須要掌握的。通過現(xiàn)在的教學(xué)發(fā)現(xiàn),很多同學(xué)并不能正確的配置集群環(huán)境。
知識(shí)點(diǎn)簡單羅列:
Ø Hadoop概念、版本、歷史
Ø Hadoop和核心組成介紹及hdfs、mapreduce體系結(jié)構(gòu)
Ø Hadoop的集群結(jié)構(gòu)
Ø Hadoop偽分布的詳細(xì)安裝步驟
Ø 如何通過命令行和瀏覽器觀察hadoop
03) 介紹HDFS體系結(jié)構(gòu)及shell、java操作方式
本節(jié)是對hadoop核心之一——hdfs的講解。hdfs是所有hadoop操作的基礎(chǔ),屬于基本的內(nèi)容。對本節(jié)內(nèi)容的理解直接影響以后所有課程的學(xué)習(xí)。在本節(jié)學(xué)習(xí)中,我們會(huì)講述hdfs的體系結(jié)構(gòu),以及使用shell、java不同方式對hdfs的操作。在工作中,這兩種方式都非常常用。學(xué)會(huì)了本節(jié)內(nèi)容,就可以自己開發(fā)網(wǎng)盤應(yīng)用了。在本節(jié)學(xué)習(xí)中,我們不僅對理論和操作進(jìn)行講解,也會(huì)講解hdfs的源代碼,方便部分學(xué)員以后對hadoop源碼進(jìn)行修改。最后,還要講解hadoop的RPC機(jī)制,這是hadoop運(yùn)行的基礎(chǔ),通過該節(jié)學(xué)習(xí),我們就可以明白hadoop是怎么明白的了,就不必糊涂了,本節(jié)內(nèi)容特別重要。
知識(shí)點(diǎn)簡單羅列:
Ø Hdfs體系結(jié)構(gòu)詳述
Ø NameNode、DataNode、SecondaryNameNode體系結(jié)構(gòu)
Ø 如果保證namenode的高可靠
Ø Datanode中block的劃分原理和存儲(chǔ)方式
Ø 如何修改namenode、datanode數(shù)據(jù)存儲(chǔ)位置
Ø 如何使用命令行操縱hdfs
Ø 如何使用java操作hdfs
Ø 介紹rpc機(jī)制
Ø 通過查看源碼,知曉hadoop是建構(gòu)在rpc之上的
Ø 通過查看hdfs源碼,知曉客戶端是如何與Namenode通過rpc通信的
04) 介紹MapReduce體系結(jié)構(gòu)及各種算法(1)
本節(jié)開始對hadoop核心之一——mapreduce的講解。mapreduce是hadoop的核心,是以后各種框架運(yùn)行的基礎(chǔ),這是必須掌握的。在本次講解中,掌握mapreduce執(zhí)行的詳細(xì)過程,以單詞計(jì)數(shù)為例,講解mapreduce的詳細(xì)執(zhí)行過程。還講解hadoop的序列化機(jī)制和數(shù)據(jù)類型,并使用自定義類型實(shí)現(xiàn)電信日志信息的統(tǒng)計(jì)。
知識(shí)點(diǎn)簡單羅列:
Ø Mapreduce原理
Ø Mapreduce執(zhí)行的八大步驟
Ø 詳細(xì)講述如何使用mapreduce實(shí)現(xiàn)單詞計(jì)數(shù)功能
Ø 詳細(xì)講述如何覆蓋Mapper功能、如何覆蓋Reducer功能。在各種hadoop認(rèn)證中,這是考察重點(diǎn)
Ø 詳細(xì)講述hadoop的自定義類型Writable接口
Ø 通過電信上網(wǎng)日志實(shí)例講述如何自定義hadoop類型
Ø 通過源碼講述hadoop是如何讀取hdfs文件,并且轉(zhuǎn)化為鍵值對,供map方法調(diào)用的
05) 介紹MapReduce體系結(jié)構(gòu)及各種算法(2)
本節(jié)繼續(xù)講解mapreduce,會(huì)把舊api的用法、計(jì)數(shù)器、combiner、partitioner、排序算法、分組算法等全部講解完畢。通過這兩次課程學(xué)習(xí),學(xué)員可以把整個(gè)mapreduce的執(zhí)行細(xì)節(jié)搞清楚,把各個(gè)可擴(kuò)展點(diǎn)都搞明白。本節(jié)內(nèi)容在目前市面可見的圖書、視頻中還沒有發(fā)現(xiàn)如此全面的哪。
知識(shí)點(diǎn)簡單羅列:
Ø 講解新舊api的區(qū)別,如何使用舊api完成操作
Ø 介紹如何打包成jar,在命令行運(yùn)行hadoop程序
Ø 介紹hadoop的內(nèi)置計(jì)數(shù)器,以及自定義計(jì)數(shù)器
Ø 介紹了合并(combiner)概念、為什么使用、如何使用、使用時(shí)有什么限制條件
Ø 介紹了hadoop內(nèi)置的分區(qū)(partitioner)概念、為什么使用、如何使用
Ø 介紹了hadoop內(nèi)置的排序算法,以及如何自定義排序規(guī)則
Ø 介紹了hadoop內(nèi)置的分組算法,以及如何自定義分組規(guī)則
Ø 介紹了mapreduce的常見應(yīng)用場景,以及如何實(shí)現(xiàn)mapreduce算法
06) 介紹Hadoop集群
hadoop就業(yè)主要是兩個(gè)方向:hadoop工程師和hadoop集群管理員。我們課程主要培養(yǎng)工程師。本節(jié)內(nèi)容是面向集群管理員的,主要講述集群管理的知識(shí)。
知識(shí)點(diǎn)簡單羅列:
Ø 如何搭建hadoop集群
Ø 如何動(dòng)態(tài)增加hadoop從節(jié)點(diǎn)
Ø 如何動(dòng)態(tài)修改hdfs的副本數(shù)
Ø 如何使用一些常用管理命令
Ø 如何理解安全模式
Ø 如何查看日志等
07) 介紹zookeeper操作
本節(jié)內(nèi)容與hadoop關(guān)系不大,只是在hbase集群安裝時(shí)才用到。但是,zookeeper在分布式項(xiàng)目中應(yīng)用較多。
知識(shí)點(diǎn)簡單羅列:
Ø Zookeeper是什么
Ø 搭建zookeeper集群環(huán)境
Ø 如何使用命令行操作zookeeper
Ø 如何使用java操作zookeeper
08) 介紹HBase體系結(jié)構(gòu)及基本操作
hbase是個(gè)好東西,在以后工作中會(huì)經(jīng)常遇到,特別是電信、銀行、保險(xiǎn)等行業(yè)。本節(jié)講解hbase的偽分布和集群的安裝,講解基本理論和各種操作。我們通過對hbase原理的講解,讓大家明白為什么hbase會(huì)這么適合大數(shù)據(jù)的實(shí)時(shí)查詢。最后講解hbase如何設(shè)計(jì)表結(jié)構(gòu),這是hbase優(yōu)化的重點(diǎn)。
知識(shí)點(diǎn)簡單羅列:
Ø Hbase是什么
Ø Hbase數(shù)據(jù)模型
Ø Hbase存儲(chǔ)模型
Ø Hbase的命令行操作
Ø Hbase的java操作
Ø 如何使用mapreduce向hbase批量導(dǎo)入數(shù)據(jù)
09) 介紹pig操作
Pig是另一套hadoop處理大數(shù)據(jù)的方法,底層調(diào)用的是mapreduce,但是入門的門檻低,書寫自由靈活,書寫效率與java代碼相比非常高,在企業(yè)中有較多應(yīng)用。本節(jié)hadoop講解pig的理論、操作。
知識(shí)點(diǎn)簡單羅列:
Ø Pig是什么
Ø Pig的數(shù)據(jù)類型、操作
Ø 使用pig完成前面的電信上網(wǎng)日志的統(tǒng)計(jì)工作
10) 介紹Hive體系結(jié)構(gòu)及基本操作
Hive作為hadoop領(lǐng)域的數(shù)據(jù)倉庫,支持sql功能,類似于mysql操作,非常好用,在企業(yè)中應(yīng)用非常廣泛。
知識(shí)點(diǎn)簡單羅列:
Ø Hive是什么
Ø Hive的體系結(jié)構(gòu),hive中的表在hdfs中是如何存儲(chǔ)的
Ø 講解如何在linux安裝mysql,如何使用mysql作為hive的metastore
Ø 通過實(shí)例詳細(xì)講述hive的內(nèi)部表、分區(qū)表、外部表、桶表
Ø 介紹視圖
Ø 介紹hive的自定義函數(shù)
11) 介紹Sqoop操作
sqoop適用于在關(guān)系數(shù)據(jù)庫與hdfs之間進(jìn)行雙向數(shù)據(jù)轉(zhuǎn)換的,在企業(yè)中,非常常用。
知識(shí)點(diǎn)簡單羅列:
Ø Sqoop是什么
Ø 通過實(shí)例講解Sqoop如何把mysql中的數(shù)據(jù)導(dǎo)入到hdfs中
Ø 通過實(shí)例講解Sqoop如何把hdfs中的數(shù)據(jù)導(dǎo)出到mysql中
Ø Sqoop如何做成job,方便以后快速執(zhí)行
12) Flume操作
Flume是cloudera公布的分布式日志收集系統(tǒng),是用來把各個(gè)的服務(wù)器中數(shù)據(jù)收集,統(tǒng)一提交到hdfs或者其他目的地,是hadoop存儲(chǔ)數(shù)據(jù)的來源,企業(yè)中非常流行。
知識(shí)點(diǎn)簡單羅列:
Ø Flume是什么
Ø 詳細(xì)Flume的體系結(jié)構(gòu)
Ø 講述如何書寫flume的agent配置信息
Ø 講述flume如何動(dòng)態(tài)監(jiān)控文件夾中文件變化
Ø 講述flume如何把數(shù)據(jù)導(dǎo)入到hdfs中
Ø 通過實(shí)例講解如何通過flume動(dòng)態(tài)監(jiān)控日志文件變化,然后導(dǎo)入到hdfs中
13) 論壇日志分析項(xiàng)目
? ? 該項(xiàng)目的數(shù)據(jù)來自于黑馬程序員論壇的日志,該項(xiàng)目是為本課程量身定做的,非常適合我們hadoop課程學(xué)習(xí)。有的同學(xué)覺得應(yīng)該介紹更多項(xiàng)目,其實(shí)做過幾個(gè)項(xiàng)目后,就會(huì)發(fā)現(xiàn)項(xiàng)目的思路是相同的,只是業(yè)務(wù)不同而已。大家寫過這個(gè)項(xiàng)目后,就對hadoop的各個(gè)框架在項(xiàng)目中是如何使用的,有個(gè)比較清晰的認(rèn)識(shí),對hadoop與javaEE結(jié)合有個(gè)比較清晰的認(rèn)識(shí)了