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