{{{ #!html
Hadoop 進階程式設計與 HBase 資料庫整合實作
}}} [[PageOutline]] = 課程資訊 = * 上課時間: 2 天,共計 12 個小時 * 上課地點: 國家高速網路與計算中心 * [https://edu.nchc.org.tw/course/one_course_introduction.asp 報名網頁課程資訊] * [http://trac.nchc.org.tw/cloud/wiki/NCHCCloudCourse110224 Hadoop基礎課程 ] 包含 hadoop 單機、叢集的安裝與設定,hdfs 系統操作..等 = 課程大綱 = == '''第一天''' == * [raw-attachment:wiki:NCHCCloudCourse100928:Day1-hadoop_20100928_v1.pdf 第一天講義投影片完整版] (PDF) || 時間 || 時數 || 課程內容 || 投影片[[BR]]實作 || 補充 || || 09:30~10:40 || 50m || 介紹課程與 Hadoop 簡介 || [raw-attachment:wiki:NCHCCloudCourse100928:part-1.pdf part-1] || 1. [wiki:NCHCCloudCourse100928_1_Install 補充一:Hadoop 單機安裝與設定][[BR]]2. [raw-attachment:wiki:NCHCCloudCourse100928:install-hadoop Ubuntu 10.04 安裝 JDK, Hadoop 0.20.2 的 Bash Script][[BR]] || || 10:53~11:30 || 40m || Hadoop生態系簡介 || [raw-attachment:wiki:NCHCCloudCourse100928:part-2.pdf part-2] || 1. [http://forum.hadoop.tw/viewtopic.php?f=4&t=301 <學習資源> Hadoop 目前三本書籍][[BR]]2. [http://www.umiacs.umd.edu/~jimmylin/MapReduce-book-final.pdf Data-Intensive Text Processing with MapReduce] (PDF),[[BR]][http://www.umiacs.umd.edu/~jimmylin/book.html Jimmy Lin, University of Maryland] || || 11:30~12:00 || 0.5h || 實作一:Hadoop Streaming 範例操作 || [wiki:NCHCCloudCourse100928/Lab1 Lab-1] || 1. [wiki:NCHCCloudCourse100928/Lab1 實作1.a:Hadoop Streaming 範例操作] || || 13:00~13:30 || 0.5h || MapReduce 與 HDFS 觀念介紹 || [raw-attachment:wiki:NCHCCloudCourse100928:part-3.pdf part-3] || 1. [http://trac.nchc.org.tw/grid/intertrac/wiki%3Ajazz/09-04-14%23MapReduce 補充:不同語言的 MapReduce 實作] 、 [wiki:NCHCCloudCourse100928_1_Install 實做1.b 安裝與設定參考] [[BR]] 2. [http://www.cloudera.com/blog/2009/02/the-small-files-problem/ 關於小檔案@HDFS] || || 13:30~14:20 || 50m || 開發輔助工具 Eclipse | Netbeans || [raw-attachment:wiki:NCHCCloudCourse100928:part-4.pdf part-4][[BR]][wiki:NCHCCloudCourse100928/Lab2 實做2.a] || 1. [wiki:NCHCCloudCourse100928_2_IDE 實作2.b :編譯環境設定- 安裝 Eclipse 3.3.2 與 Hadoop 外掛程式][[BR]]2. [wiki:NCHCCloudCourse100928/Netbeans 補充2.c:安裝 Netbean 6.9.1 中文版與 KamaSphere Studio 外掛程式] || || 14:30~15:00 || 30m || Map Reduce 程式架構 || [raw-attachment:wiki:NCHCCloudCourse100928:part-5.pdf part-5] || 1. [wiki:NCHCCloudCourse100928_3_EXE 實作3 : HDFS IO Code] || || 15:00~16:50 || 2h 超過 || 程式設計:範例程式解說與實作 || [raw-attachment:wiki:NCHCCloudCourse100928:part-5.pdf part-5] || 1. [wiki:NCHCCloudCourse100928_4_EXM 實作4 : MapReduce 範例程式] || == 課程實做 == * 0 [wiki:NCHCCloudCourse100928/Lab1 Hadoop Streaming 練習] * 1.a [wiki:NCHCCloudCourse100928_1_Install Hadoop安裝與設定(3 modes )] * 1.b [http://trac.nchc.org.tw/cloud/wiki/Hadoop_Lab2 hdfs 檔案操作指令練習] * 2.a [wiki:NCHCCloudCourse100928/Lab2 指令方式編譯hadoop] * 2.b [wiki:NCHCCloudCourse100928_2_IDE 安裝 Eclipse 3.3.2 與 Hadoop 外掛程式] * 2.c [wiki:NCHCCloudCourse100928/Netbeans 安裝 Netbean 6.9.1 中文版與 KamaSphere Studio 外掛程式] * 3. [wiki:NCHCCloudCourse100928_3_EXE 程式設計I- HDFS IO Code] * 4. [wiki:NCHCCloudCourse100928_4_EXM 程式設計II- MapReduce 範例程式] == '''第二天''' == * [raw-attachment:wiki:NCHCCloudCourse100928:Day2-hbase-2010023-handout.pdf 第二天講義投影片完整版] (PDF) || 時間 || 時數 || 課程內容 || 投影片/實作 || 補充 || || 09:30~10:20 || 50m || 開發環境確認[[BR]]範例程式補完[[BR]]Hadoop應用範例分享 || [raw-attachment:wiki:NCHCCloudCourse100928:part-5.pdf part-5] || 1. [wiki:NCHCCloudCourse100928_4_EXM 實作四:MapReduce 範例程式] || || 10:30~11:30 || 60m || HBase 簡介與架構 || [raw-attachment:wiki:NCHCCloudCourse100928:part-6.pdf part-6] || 1. [wiki:NCHCCloudCourse100929_1_HBInstall 實作5:安裝與設定參考] [[BR]] 2. [grid:wiki:jazz/NoSQL Jazz's NoSQL 筆記] [[BR]] 3. [raw-attachment:wiki:NCHCCloudCourse110718:scale.pdf 關於 Large Scale Website] [[BR]] 4. [wiki:NCHCCloudCourse100928#補充資料 心得分享:NoSQL 必須視應用特性再決定是否採用] [[BR]] || || 11:30~12:00 || 30m || HBase 安裝操作說明 || [raw-attachment:wiki:NCHCCloudCourse100928:part-7.pdf part-7] || 1. [wiki:NCHCCloudCourse100929_2_USE 實作6:HBase 使用方法] || || 12:00~13:00 || 60m || - 午餐 || || || || 13:00~14:00 || 60m || HBase 程式架構與範例 || [raw-attachment:wiki:NCHCCloudCourse100928:part-8.pdf part-8] || 1. [wiki:NCHCCloudCourse100929_4_HBEX 實作7 :HBase程式設計][[BR]]2. [wiki:NCHCCloudCourse100929_4_HEXM HBase 範例:台中餐城(TCRC)銷售金額統計] || || 14:20~15:20 || 60m || Hadoop + HBase + PHP 案例實務 || [raw-attachment:wiki:NCHCCloudCourse100928:part-8.pdf part-8] || 1. [wiki:waue/2010/HbaseThrift 實作8 :Hbase + Thrift + PHP ] || || 15:20~15:40 || 20m || Cassandra || || 1. Twitter 比較 HBase 與 Cassandra ([http://ria101.wordpress.com/2010/02/24/hbase-vs-cassandra-why-we-moved/ 原文]|[http://wangxu.me/blog/?p=371 中文]) [[BR]] 2. [http://trac.nchc.org.tw/cloud/wiki/waue/2011/0707 cassandra 安裝使用簡介] || || 15:40~16:00 || 20m || 補充教材: hadoop + 關聯式資料庫 || [raw-attachment:wiki:NCHCCloudCourse100928:part-9.pdf part-9] || 1. [wiki:NCHCCloudCourse100928_MYSQL Hadoop 透過 JDBC 連結 MySQL 範例程式碼][[BR]]2. [http://www.mysql.com/downloads/connector/j/ JDBC Driver for MySQL (Connector/J)][[BR]] 3. [http://www.cloudera.com/blog/tag/dbinputformat/ 關於 DBInputFormat (from Cloudera)] - [http://developer.yahoo.net/blogs/hadoop/DBInputFormat.ppt slides] || || 16:00~16:30 || 30m || 應用案例分享 || [raw-attachment:wiki:NCHCCloudCourse110718:Hadoop應用-Crawlzilla簡介.pdf Crawlzilla簡報檔]|| 1. [http://code.google.com/p/crawlzilla Crawlzilla專案網址] || == 課程實做 == * 5. [wiki:NCHCCloudCourse100929_1_HBInstall 安裝與設定參考] * 6. [wiki:NCHCCloudCourse100929_2_USE HBase 使用方法] * 7a. [wiki:NCHCCloudCourse100929_4_HBEX HBase程式設計] * 7b. [wiki:NCHCCloudCourse100929_4_HEXM 台中餐城(TCRC)銷售金額統計] * 8. [wiki:waue/2010/HbaseThrift Hbase + Thrift + PHP ] = 課後練習 = == 教材練習實做方式 == * 本實作基於 Ubuntu 8.04(含)以上版本,其中Ubuntu 10.04(含)以上安裝Java的方法有異動,請到該步驟時注意一下。 * 本頁面的部分指令,是針對不熟悉 Linux 文字編輯器的使用者所設計的'懶人'設定法,您也可以使用習慣使用的文字編輯器(如:vi,nano,joe等)進行修改。 * '''黑底白字的部分為指令或console秀出的畫面''',請自行剪貼提示符號 "$"(代表一般使用者) 或 "#"(代表最高權限 root 管理者) 之後的指令。如: {{{ /home/DIR$ Copy_Command From To ... }}} 則複製''' Copy_Command From To ... ''' 這個指令,貼到你的console來執行。(/home/DIR 代表目前所在的目錄路徑) * '''白底黑字的部分為文件內的內容''' ,如 {{{ #!sh I am context. }}} 如果熟悉vi,nano,joe等編輯器可複製此區內容貼到文件內(雖然此頁面的指令都已經簡化過) * 登入資訊 || 使用者 || hadoop|| || 群組 || hadoop || || 密碼 || ****** || * Hadoop 擁有sudoer 的權限 * 使用[http://trac.nchc.org.tw/cloud/wiki/Hadoop4Win Hadoop4Win] - 在 Windows 上安裝單機版 Hadoop 與 HBase 練習環境 ('''注意:僅供練習使用,請勿用於實際營運!''') * 使用 HBase 0.90 改寫以上範例 [http://trac.nchc.org.tw/cloud/wiki/waue/2011/0426 code example ] * [http://sourceforge.net/projects/drbl-hadoop/files/ DRBL-Hadoop Live CD] (CDH2, 0.20.x) - 國網中心 hadoop.nchc.org.tw 的底層作法,使用方法仍在整理中~但已足夠作為練習 Hadoop 的執行環境 * 使用[http://www.cloudera.com/downloads/ Cloudera 提供的 VMWare Image] (CDH2, 0.20.x) * 使用[http://developer.yahoo.com/hadoop/tutorial/module3.html#vm Yahoo! Hadoop Tutorial 的 VMWare Image] (0.20.S) * 使用[http://code.google.com/intl/zh-TW/edu/parallel/tools/hadoopvm/index.html Google 提供的 Hadoop VMWare Image] (0.13,很舊了) = 公用環境 Public Cluster = * 課後問題討論,建議優先至台灣 Hadoop 使用者討論區 http://forum.hadoop.tw 進行討論。 * 需要 Hadoop 叢集環境,可至 http://hadoop.nchc.org.tw 申請帳號。 * 申請步驟,請參閱[wiki:YMU110509/Lab1 截圖說明] * 關於公用叢集的幾個重要入口: * http://hadoop.nchc.org.tw - 實驗叢集入口網站 * http://hadoop.nchc.org.tw/ganglia - 實驗叢集負載狀態 * http://hadoop.nchc.org.tw:50030 - 實驗叢集正在執行與執行完畢的任務 * http://hadoop.nchc.org.tw:50070 - 實驗叢集的硬碟空間狀態 * http://hadoop.nchc.org.tw/hadoop-doc - Hadoop 相關說明文件 * http://hadoop.nchc.org.tw/hadoop-doc/api/index.html - Hadoop 0.20.2 javadoc 文件