(在家觀看 = 0%,在校觀看 = 100%)
100% 在校觀看日期及時間:
自由選擇,點選以下地區觀看辦公時間及位置
課時: 12 小時
享用時期: 報讀日至 4 星期內,進度由您控制,可快可慢。
課堂錄影導師:Franco
在校免費試睇:首 1 小時,請致電以上地點與本中心職員預約。
本課程提供在校免費重睇及導師解答服務。
(在家觀看 = 100%,在校觀看 = 0%)
100% 在家觀看日期及時間:
每天 24 小時全天候不限次數地觀看
學費:$2,380 報名 phone
電話:2332-6544
課時: 12 小時
享用時期: 報讀日至 4 星期內,進度由您控制,可快可慢。
課堂錄影導師:Franco
在校免費試睇:首 1 小時,請致電以上地點與本中心職員預約。
本課程提供導師解答服務。
大數據 (Big data) 是一個近年相當流行的概念。由於大數據所描述的數據規模巨大,在處理和分析大數據中會有機會遭遇限制和阻礙,限制和阻礙主要是由於一般的資料庫管理系統難以 “有效” 處理和分析大數據。處理和分析大數據需要使用數十、數百、數千甚至數萬台伺服器同時進行平行運算才能 “有效” 處理和分析大數據。
Google 分別在 2003 年及 2004 年發表了兩篇的論文 “The Google File System” 和 “MapReduce: Simplified Data Processing on Large Clusters”。隨後 Apache 開源基金會作出 DFS (Distributed File System) 以及 MapReduce 的開源解決方案,也就是今天的 Hadoop 平台的雛型。
Hadoop 是由 Java 編寫的開源軟體框架 (Open-source Software Framework),Hadoop 提供分散式檔案系統 (Distributed File System) 及以 MapReduce 框架進行分散式運算 (Distributed computing)。Hadoop 被視為其中一個處理和分析大數據的熱門方案。
由於處理和分析大數據的技術相當獨特,所謂萬事起頭難,在初次學習大數據技術難免遇到不同程度的障礙。本基礎課程旨在有系統地,透過具針對性的實戰例子教授學員處理和分析大數據的必要概念及技術,當中包括安裝 Hadoop、操作HDFS (Hadoop Distributed File System) 和使用 MapReduce 進行大數據分析等。了解相關大數據技術後就會探討 Hadoop 在商業環境中的應用情況等。
由於操作 HDFS (Hadoop Distributed File System) 和使用 MapReduce 進行大數據分析均會使用 Java 程式語言,故此建議學員在報讀本課程前需要具備 “Java EE 程式編寫基礎課程 (主要教授 JSP, Servlet, JSTL 和 EL)” 中第 4 課 [Java 語言 (基礎語法)]、第 5 課 [Java 語言 (物件導向概念)] 及第 6 課 [Java 語言 (常用類別)] 的知識。亦由於導師會將 Hadoop 安裝在 Linux 上進行示範,故此建議學員在報讀本課程前需要具備基本的 Linux 操作知識。
課程名稱: |
Hadoop 大數據技術基礎課程 (Big Data) - 簡稱:Hadoop Training Course |
課程時數: | 12 小時 (共 4 堂) |
適合人士: | 建議學員在報讀本課程前需要具備 “Java EE 程式編寫基礎課程 (主要教授 JSP, Servlet, JSTL 和 EL)” 中第 4 課 [Java 語言 (基礎語法)]、第 5 課 [Java 語言 (物件導向概念)] 及第 6 課 [Java 語言 (常用類別)] 的知識。亦由於導師會將 Hadoop 安裝在 Linux 上進行示範,故此建議學員在報讀本課程前需要具備基本的 Linux 操作知識,例如具備 “Shell Script Linux 自動化課程” 中的第 2 課 [Linux 的指令介面] 的知識。 |
授課語言: | 以廣東話為主,輔以英語 |
課程筆記: | 本中心導師親自編寫中文為主筆記,而部份中文字附有英文對照。 |
課程名稱:Hadoop 大數據技術基礎課程 (Big Data) - 簡稱:Hadoop Training Course |
1 大數據 (Big Data)
1.1 引言
1.2 3Vs / 4Vs / 5Vs
1.3 Structured Data, Semi-Structured Data 與 Unstructured Data
1.3.1 Structured Data
1.3.2 Semi-Structured Data
1.3.3 Unstructured Data
1.4 挑戰
2 Hadoop 與大數據 (Big Data)
2.1 Hadoop 概觀
2.2 Hadoop 如何應對大數據挑戰
2.3 Hadoop 的商業論証 / Business Case of Hadoop
2.4 學習 Hadoop 所需的技術知識
2.5 Hadoop 結構
2.5.1 HDFS (Hadoop Distributed File System)
2.5.1.1 宏觀概念
2.5.1.2 NameNodes and DataNodes
2.5.1.3 Blocks 與 Replication (複製)
2.5.1.4 Balancer
2.5.1.5 Rack Awareness
2.5.1.6 HDFS 的合適應用情景
2.5.2 MapReduce (映射 / 歸納)
2.5.2.1 Map
2.5.2.2 Reduce
3 安裝 Hadoop
3.1 伺服器及相關設定
3.2 設定 JDK
3.3 安裝 Hadoop
3.3.1 解開 tar 檔
3.3.2 hadoop-env.sh
3.3.3 core-site.xml
3.3.4 hdfs-site.xml
3.3.5 格式化
3.3.6 啟動 HDFS
3.3.7 建立資料夾以執行測試用的 MapReduce
3.3.8 測試 MapReduce
3.4 YARN (Yet Another Resource Negotiator) / MRv2
3.4.1 YARN 概念
3.4.1.1 ResourceManager, ApplicationsManager, NodeManager 及 per-application ApplicationMaster
3.4.1.2 更全面的構圖
3.4.2 設定 YARN
3.4.2.1 mapred-site.xml
3.4.2.2 yarn-site.xml
3.5 Job history 伺服器
4 HDFS:File System (FS) shell
4.1 ls
4.2 cat
4.3 get
4.4 copyToLocal
4.5 put 和 rm (資料夾)
4.6 copyFromLocal
4.7 du
4.8 checksum
4.9 count
4.10 mkdir
4.11 rmdir
4.12 touchz
4.13 appendToFile
4.14 cp
4.15 mv
4.16 rm (檔案)
4.17 find
4.18 Snapshot
4.18.1 啟動 Snapshot
4.18.2 製作 Snapshot
4.18.3 檢視 Snapshot
4.18.4 Snapshot 改名
4.18.5 檢視 Snapshot 內容
4.18.6 刪除檔案並以 Snapshot 復原
4.18.7 移除 Snapshot
4.18.8 關閉 Snapshot
4.19 chmod
4.20 Quota
4.21 SpaceQuota
4.22 檢視 block 資料
5 準備編程環境
5.1 安裝 JDK (Java Platform, Standard Edition Development Kit)
5.2 設定 Eclipse 和 Hadoop 環境
6 HDFS:Java
6.1 編寫 Hadoop 程式的準備工夫
6.2 顯示 HDFS 的系統性設定
6.3 建立資料夾
6.4 刪除資料夾
6.5 列出資料夾及檔案
6.6 建立檔案
6.7 為檔案新增內容
6.8 讀取文字檔內容
6.9 刪除檔案
6.10 檢視檔案的屬性
6.11 壓縮檔
7 Hadoop I/O
7.1 序列化 (Serialization) 與反序列化 (Deserialization)
7.1.1 序列化 (Serialization)
7.1.2 反序列化 (Deserialization)
7.2 Hadoop 的物件類別
7.2.1 Writable (org.apache.hadoop.io.Writable) wrappers for Java primitives
7.2.2 Text (org.apache.hadoop.io.Text)
7.3 體驗 Hadoop 的序列化 (Serialization) 與反序列化 (Deserialization)
7.4 比較
7.5 Text (org.apache.hadoop.io.Text) 與 String (java.lang.String) 的互動
7.6 Custom Writable
7.6.1 Custom Writable:建立相關類別
7.6.2 Custom Writable:運用相關類別
7.7 SequenceFile
7.7.1 SequenceFile 特點及應用情景
7.7.2 實踐 SequenceFile:建立及寫入 SequenceFile
7.7.3 實踐 SequenceFile:讀取 SequenceFile 的內容
8 MapReduce:基本
8.1 MapReduce 概念, <k1, v1>, <k2, v2>, <k3, v3>
8.2 第 1 個 MapReduce 程式 (Mapper, Reducer, Job, JAR)
8.2.1 程式目標
8.2.2 準備工夫
8.2.3 Mapper (org.apache.hadoop.mapreduce.Mapper)
8.2.4 Reducer (org.apache.hadoop.mapreduce.Reducer)
8.2.5 Job (org.apache.hadoop.mapreduce.Job)
8.2.6 JAR (Java Archive)
8.2.7 在 Hadoop 上執行
8.3 Combiner
8.3.1 Combiner 概念
8.3.2 Combiner 操作
8.4 沒有 Mapper class 與 Reducer class 的 Job
8.4.1 Mapper class 與 Reducer class 的操作
9 MapReduce:進階
9.1 Custom FileInputFormat 與 Custom FileRecordReader
9.1.1 程式目標
9.1.2 準備工夫
9.1.3 Custom FileRecordReader
9.1.4 Custom FileInputFormat
9.1.5 Mapper (optional)
9.1.6 Reducer (optional)
9.1.7 Job with custom FileInputFormat 與 custom FileRecordReader
9.1.8 在 Hadoop 上執行
9.2 建立多個具自定名稱的結果檔案
9.2.1 MultiOutputs 概念
9.2.2 MultiOutputs 操作
9.2.2.1 程式目標
9.2.2.2 準備工夫
9.2.2.3 Reducer (org.apache.hadoop.mapreduce.Reducer)
9.2.2.4 Job (org.apache.hadoop.mapreduce.Job)
9.2.2.5 在 Hadoop 上執行
9.3 Partitioner與多個 Reducers
9.3.1 Partitioner與多個 Reducers 的概念
9.3.2 Partitioner與多個 Reducers 的操作
9.3.2.1 程式目標
9.3.2.2 準備工夫
9.3.2.3 Mapper (org.apache.hadoop.mapreduce.Mapper)
9.3.2.4 Partitioner (org.apache.hadoop.mapreduce.Partitioner)
9.3.2.5 Reducer (org.apache.hadoop.mapreduce.Reducer)
9.3.2.6 Job (org.apache.hadoop.mapreduce.Job)
9.3.2.7 在 Hadoop 上執行
9.3.2.8 有趣情景 1:太少 Reduce tasks
9.3.2.9 有趣情景 2:太多 Reduce tasks
9.3.2.10 有趣情景 3:getPartition 回傳隨意的 int
9.4 Custom Counters
9.4.1 預設的 counters
9.4.2 Custom counters
9.4.2.1 程式目標
9.4.2.2 準備工夫
9.4.2.3 Enum
9.4.2.4 Mapper (org.apache.hadoop.mapreduce.Mapper)
9.4.2.5 Reducer (org.apache.hadoop.mapreduce.Reducer)
9.4.2.6 Job (org.apache.hadoop.mapreduce.Job)
9.4.2.7 在 Hadoop 上執行
9.5 WritableComparator 與排序
9.5.1 WritableComparator 與排序概念
9.5.2 WritableComparator 與排序操作
9.5.2.1 程式目標
9.5.2.2 準備工夫
9.5.2.3 Mapper (org.apache.hadoop.mapreduce.Mapper)
9.5.2.4 Reducer (org.apache.hadoop.mapreduce.Reducer)
9.5.2.5 WritableComparator (org.apache.hadoop.io.WritableComparator)
9.5.2.6 Job (org.apache.hadoop.mapreduce.Job)
9.5.2.7 在 Hadoop 上執行
9.6 二次排序 (Secondary Sort)
9.6.1 二次排序概念
9.6.2 二次排序操作
9.6.2.1 程式目標
9.6.2.2 準備工夫
9.6.2.3 二次排序的核心部份
9.6.2.4 Mapper (org.apache.hadoop.mapreduce.Mapper)
9.6.2.5 Reducer (org.apache.hadoop.mapreduce.Reducer)
9.6.2.6 Job (org.apache.hadoop.mapreduce.Job)
9.6.2.7 在 Hadoop 上執行
9.7 處理多個輸入檔案
9.7.1 處理多個輸入檔案的背景
9.7.2 處理多個輸入檔案的操作
9.7.2.1 程式目標
9.7.2.2 準備工夫
9.7.2.3 Mapper (org.apache.hadoop.mapreduce.Mapper)
9.7.2.4 Reducer (org.apache.hadoop.mapreduce.Reducer)
9.7.2.5 Job (org.apache.hadoop.mapreduce.Job)
9.7.2.6 在 Hadoop 上執行
9.8 Grouping Comparator
9.8.1 Grouping Comparator 概念
9.8.2 Grouping Comparator 操作
9.8.2.1 程式目標
9.8.2.2 準備工夫
9.8.2.3 Mapper (org.apache.hadoop.mapreduce.Mapper)
9.8.2.4 Reducer (org.apache.hadoop.mapreduce.Reducer)
9.8.2.5 Grouping Comparator (org.apache.hadoop.io.WritableComparator)
9.8.2.6 Job (org.apache.hadoop.mapreduce.Job)
9.8.2.7 在 Hadoop 上執行
9.9 SequenceFile 的 MapReduce
9.9.1 MapReduce 與 SequenceFile
9.9.2 MapReduce 內使用SequenceFile 的操作
9.9.2.1 程式目標
9.9.2.2 準備工夫
9.9.2.3 Mapper (org.apache.hadoop.mapreduce.Mapper)
9.9.2.4 Reducer (org.apache.hadoop.mapreduce.Reducer)
9.9.2.5 Job (org.apache.hadoop.mapreduce.Job)
9.9.2.6 在 Hadoop 上執行
9.10 Shuffling
10 商業應用
10.1 例子
10.1.1.1 例子1
10.1.1.2 例子2
10.1.1.3 例子3
10.1.1.4 例子4
10.1.1.5 例子5
10.1.1.6 例子6
10.2 應用情景