| 1 | {{{ |
| 2 | #!html |
| 3 | <div style="text-align: center;"><big |
| 4 | style="font-weight: bold;"><big><big>雲端 Big Data 之處理、分析與應用(進階班)</big></big></big></div> |
| 5 | }}} |
| 6 | [[PageOutline]] |
| 7 | |
| 8 | = 報名資訊 = |
| 9 | |
| 10 | * 詳[http://www.iiiedu.org.tw/ites/CBDA.htm 資策會網站公告] |
| 11 | |
| 12 | = 課程源起 = |
| 13 | {{{ |
| 14 | #!text |
| 15 | 雲端運算掀起了新一代的資訊革命,也帶來了資訊爆炸式的成長,市調單位IDC的研究報告指出: |
| 16 | 自2010年全球資料量已進入ZB(zettabytes,1 ZB 為1兆GB)時代,並且每年以60%的速度攀升, |
| 17 | 這意味著每18個月全球的資料量將翻倍。面對不斷擴張的驚人資料量,大量資料 (Big Data) 的 |
| 18 | 儲存、管理、處理、搜尋、分析與智能應用等處理資料的能力也將面臨新的挑戰,而處理資料的技術 |
| 19 | 將迫切需要可動態與彈性等特點,以支援大量資料處理的計算模式。 |
| 20 | |
| 21 | 工欲善其事,必先利其器,根據市場調查機構IDC的研究顯示,Hadoop 軟體市場的復合年增長率 |
| 22 | 超過了60%,並預測到了2016年,市場總值將由2011年的7700萬美元增長至8.128億美元,可見得 |
| 23 | Hadoop火熱的程度。巨量資料寶庫蘊藏豐沛的珍寶,除了幾乎成為巨量資料代名詞的Hadoop外, |
| 24 | 相同框架裡頭的 MapReduce、HDFS等技術,皆為意欲挖掘出這些寶藏之企業所需準備的工具,意欲 |
| 25 | 開啟巨量資料希望之門,幾乎可以肯定,絕對少不掉Hadoop這把鑰匙! |
| 26 | |
| 27 | 為了解決巨量資料的問題,Hadoop 周遭已經發展出相當完整的生態系,其中有兩個最為核心的項目, |
| 28 | 一是MapReduce這個執行分散式處理的程式模型,另一則是HDFS這個虛擬的分散式檔案系統,透過 |
| 29 | 專司運算、儲存的兩根大支柱,牢牢地撐起Hadoop架構。且基於map/reduce的演算,Hadoop可以 |
| 30 | 利用分散式節點的增加,來持續提供更多的計算能力,因此具備了很好的規模可擴充性。 |
| 31 | |
| 32 | 為了滿足業界需求,資策會 特規劃「雲端Big Data之處理與分析進階班」課程,本課程學員將學習 |
| 33 | 到雲端運算之三大關鍵技術,利用Hadoop之分散式檔案系統(HDFS)與MapReduce,快速建構出雲端 |
| 34 | 運算的執行環境和服務,並以Hadoop FileSystem API 實作、MapReduce API 實作、 |
| 35 | MapReduce 與資料庫結合與MapReduce 與 Hadoop 生態系整合等實作方式讓學員更加了解如何 |
| 36 | 透過Hadoop架構以進行雲端資料的大量資料處理、分析與應用。 |
| 37 | }}} |
| 38 | |
| 39 | = 課程目標 = |
| 40 | |
| 41 | * 學習 Hadoop File System 之 API 實作 |
| 42 | * 學習 Hadoop MapReduce 開發輔助工具 Eclipse 與 Netbeans |
| 43 | * 學習 MapReduce 之 API 實作 |
| 44 | * 瞭解 MapReduce 與資料庫結合的方式 |
| 45 | * 學習 MapReduce 與 Hadoop 生態系之整合方式 |
| 46 | |
| 47 | = 課程特色 = |
| 48 | |
| 49 | {{{ |
| 50 | #!text |
| 51 | 本課課程重點在於透過採體驗式教學方式的實作,經由多樣性的實際指令操作進行整合實作, |
| 52 | 讓參訓學員瞭解正確的觀念與方法,以體驗實際的操作方式驗證課程所學 ,期能讓學員學會 |
| 53 | 如何將 Hadoop 這項技術與現存資訊架構進行整合。 |
| 54 | }}} |
| 55 | |
| 56 | = 適合對象 = |
| 57 | |
| 58 | * IT經理或系統網路部門主管 |
| 59 | * 專案經理、系統架構師或系統網路管理人員 |
| 60 | * 企業或技術決策人員 |
| 61 | * 對於雲端運算之大量資料(Big Data)處理、分析、應用有興趣者 |
| 62 | |
| 63 | [[PageOutline]] |
| 64 | |
| 65 | = 預備知識 = |
| 66 | |
| 67 | * 具 Linux 操作實務與 Java 程式語言基礎者尤佳。 |
| 68 | * 具雲端運算之大量資料處理、分析與應用實務之基礎課程知識者尤佳。 |
| 69 | |
| 70 | = 課程日期 = |
| 71 | |
| 72 | * 103年01月18~19日 (週六/週日 白天9:30 ~16:30 ),共2天、計12小時 。 |
| 73 | |
| 74 | = 上課地點 = |
| 75 | |
| 76 | * 資策會數位教育研究所,台北市信義路三段 153 號 10 樓 1001 教室。 |
| 77 | * 位於捷運木柵線大安站斜對面(復興南路與信義路交叉口),燦坤樓上。 |
| 78 | * 上課地點與教室之確認,以上課通知函為主。 |
| 79 | |
| 80 | = 課程內容 = |
| 81 | |
| 82 | * [raw-attachment:wiki:III140118:14-01-18_Hadoop_Advanced.pdf 完整版投影片] |
| 83 | |
| 84 | == '''2014-01-18(六)''' == |
| 85 | |
| 86 | || 時段 || 課程內容 || 投影片[[BR]]實作步驟 || 補充資料 || |
| 87 | || 09:30-11:00 || Big Data 處理技術與 Hadoop 簡介 || [raw-attachment:wiki:III140118:part-1.pdf 投影片] || * 重點一:減少資料搬運的頻寬成本跟時間成本 [[BR]] * 重點二:在地運算(Data Locality) || |
| 88 | || 11:00-11:20 || Hadoop 的三種模式與三種安裝方法 || || * http://hadoop.apache.org - Hadoop 專案官方首頁 [[BR]] * http://www.cloudera.com - RPM/DEB 套件庫 : [http://www.etusolution.com/index.php/tw/ 精誠知意圖(Etu)] [[BR]] * http://hortonworks.com - HDP for Windows : [http://www.tcloudcomputing.com.tw 趨勢騰雲(TCloud)] [[BR]] * http://www.mapr.com - MapR : [http://www.is-land.com.tw 亦思科技] || |
| 89 | || 11:20-12:00 || 單機模式(Local Mode)操作觀察 || [wiki:III140118/Lab1 實作一] || * [http://hadoop.apache.org/docs/stable/single_node_setup.html 阿帕契基金會官網單機安裝流程] [[BR]] * [http://hadoop.nchc.org.tw/~jazz/temp Ubuntu 安裝 Hadoop / HBase 單機安裝腳本] || |
| 90 | || 12:00-12:25 || 偽分散式模式(Pseudo-Distributed Mode)操作觀察 || [wiki:III140118/Lab2 實作二] || * [http://trac.nchc.org.tw/cloud/wiki/NTU131002/Lab2 官方 Hadoop 2.0 版的自動化安裝] || |
| 91 | || 12:25-13:30 || 午餐時間 || || || |
| 92 | || 13:30-13:45 || 全分散式模式(Full Distributed Mode)操作觀察 || [wiki:III140118/Lab3 實作三] || || |
| 93 | || 13:45-14:00 || HDFS 基本指令操作 || [wiki:III140118/Lab4 實作四] || || |
| 94 | || 14:00-14:20 || 基本除錯技能(一) Bash 除錯 || [wiki:III140118/Lab5 實作五] || || |
| 95 | || 14:20-14:30 || 基本除錯技能(二) Log4J || [wiki:III140118/Lab6 實作六] || || |
| 96 | || 14:20-14:40 || 基本除錯技能(三) 切換 Hadoop 設定檔 || [wiki:III140118/Lab7 實作七] || || |
| 97 | || 14:40-15:00 || 中場休息 || |
| 98 | || 略過 || MapReduce 基本指令操作 || [wiki:III140118/Lab8 實作八] || || |
| 99 | || 15:00-15:20 || Hadoop !FileSystem API 原始碼觀察 || [wiki:III140118/Lab9 實作九] || || |
| 100 | || 15:20-15:40 || Hadoop !FileSystem API 實作(一) [[BR]] Local 檔案上傳到 HDFS || [wiki:III140118/Lab10 實作十] || || |
| 101 | || 15:40-15:50 || Hadoop !FileSystem API 實作(二) [[BR]] HDFS 下載檔案到 Local || [wiki:III140118/Lab11 實作十一] || || |
| 102 | || 15:50-16:00 || Hadoop !FileSystem API 實作(三) [[BR]] 判斷檔案是否存在、屬性為何 || [wiki:III140118/Lab12 實作十二] || || |
| 103 | || 略過 || Windows 版 Hadoop 安裝 (1) Hadoop4Win || [wiki:III140118/Lab13 實作十三] || * http://www.hadoop4win.org || |
| 104 | || 16:00-16:10 || Windows 版 Hadoop 安裝 (2) Windoop || [wiki:III140118/Lab14 實作十四] || * http://code.google.com/p/windoop || |
| 105 | || 16:10-16:30 || Hadoop Eclipse Plugin 功能展示 || '''操作展示''' || || |
| 106 | |
| 107 | == '''2014-01-19(日)''' == |
| 108 | |
| 109 | || 時段 || 課程內容 || 實作 || 補充資料 || |
| 110 | || 09:30-10:10 || 課後練習補充資料 || || * 如何自己建立練習環境 [[BR]] * [http://forum.hadoop.tw/viewtopic.php?f=7&t=36011 CCDH / CCAH 考試認證指南] [[BR]] * [http://forum.hadoop.tw Hadoop.TW 技術討論區] [[BR]] * [https://www.facebook.com/groups/hadoop.tw/ 臉書 Hadoop.TW 社團] [[BR]] * [http://classcloud.org/media 歷史課程錄影] || |
| 111 | || 10:10-10:40 || [wiki:WordCountNewVerstion 新版 Hadoop MapReduce 語法 (0.19以後)] [[BR]] 使用 !WordCount 範例解說 || [wiki:III140118/Lab15 實作十五] || || |
| 112 | || 10:40-11:00 || 中場休息 || || || |
| 113 | || 11:00-12:05 || MapReduce 『邏輯流』解說 || [wiki:III140118/MapReduce_Logic_Flow 圖解說明] || || |
| 114 | || 12:05-13:05 || 午餐時間 || || || |
| 115 | || 13:05-13:25 || [wiki:WordCount 舊版 Hadoop MapReduce 語法 (0.19以前)] [[BR]] 使用 !WordCount 範例解說 || [wiki:III140118/Lab16 實作十六] || || |
| 116 | || 13:25-13:45 || Inner Class v.s. Public Classes || [wiki:III140118/Lab17 實作十七] || || |
| 117 | || 13:45-14:00 || 增加 Reducer 個數:Job.setNumReduceTasks(N) || [wiki:III140118/Lab18 實作十八] || || |
| 118 | || 14:00-14:15 || 觀察 Mapper 中間產物:Job.setNumReduceTasks(0) || [wiki:III140118/Lab19 實作十九] || || |
| 119 | || 14:15-14:30 || 中場休息 || |
| 120 | || 14:40-15:00 || 預設的輸入格式:!TextInputFormat || [wiki:III140118/Lab20 實作二十] || || |
| 121 | || 15:00-15:20 || 修改檔案輸入格式:!KeyValueTextInputFormat || [wiki:III140118/Lab21 實作二十一] || || |
| 122 | || 15:20-16:00 || MapReduce 『資料流』解說 || [wiki:III140118/MapReduce_Data_Flow 圖解說明] || || |
| 123 | || 16:00-16:20 || 關於 MapReduce 的設定檔 Configuration || [wiki:III140118/Lab22 實作二十二] || || |
| 124 | || 16:20-16:30 || 如果我需要兩個輸入檔呢? [[BR]] Distribtued Cache || [wiki:III140118/Lab23 實作二十三] || || |
| 125 | |
| 126 | = 補充設定 = |
| 127 | |
| 128 | * screenrc 範例 |
| 129 | {{{ |
| 130 | $ cat > ~/.screenrc <<EOF |
| 131 | caption always "%{= wk} %{= KY} [%n]%t @ %H %{-} %= %{= KR} %l %{-} | %{= KG} %Y-%m-%d %{-} " |
| 132 | hardstatus alwayslastline " %-Lw%{= Bw}%n%f %t%{-}%+Lw %=|" |
| 133 | vbell off |
| 134 | EOF |
| 135 | }}} |
| 136 | |
| 137 | * 檢查 Java 記憶體使用量 |
| 138 | {{{ |
| 139 | top -p `pidof java | sed 's# #,#g'` |
| 140 | }}} |
| 141 | |
| 142 | * hadoop_labs for hadoop4win - 未經完整測試 |
| 143 | * https://github.com/jazzwang/hadoop_labs/archive/hadoop4win.zip |
| 144 | |
| 145 | = 公用環境 = |
| 146 | |
| 147 | * 課後問題討論,建議優先至台灣 Hadoop 使用者討論區 http://forum.hadoop.tw 或臉書粉絲團 https://www.facebook.com/groups/hadoop.tw/ 進行討論。 |
| 148 | * 需要 Hadoop 叢集環境,可至 http://hadoop.nchc.org.tw 申請帳號。 |
| 149 | * 申請步驟,請參閱[wiki:YMU110509/Lab1 截圖說明] |
| 150 | * 關於公用叢集的幾個重要入口: |
| 151 | * http://hadoop.nchc.org.tw - 實驗叢集入口網站 |
| 152 | * http://hadoop.nchc.org.tw/ganglia - 實驗叢集負載狀態 |
| 153 | * http://hadoop.nchc.org.tw:50030 - 實驗叢集正在執行與執行完畢的任務 |
| 154 | * http://hadoop.nchc.org.tw:50070 - 實驗叢集的硬碟空間狀態 |
| 155 | * http://hadoop.nchc.org.tw/hadoop-doc - Hadoop 相關說明文件 |
| 156 | * http://hadoop.nchc.org.tw/hadoop-doc/api/index.html - Hadoop 0.20.2 javadoc 文件 |