Results tagged “MapReduce” from Hadoop Taiwan User Group

淺談雲端運算新趨勢與 Hadoop 平台之崛起
國家高速網路與計算中心 王耀聰

** 本文亦刊登於網管人雜誌第 53 期 ( 2010 年六月號 )

坐看風雲險中生

  隨著網際網路的普及,各種連網裝置讓我們的生活更加地便利。然而隨著人們產生資訊的速度越來越快,數量愈來愈多,大量通訊不僅塞爆了實體的網路頻寬,無形中也正侵蝕著你我大腦的資訊頻寬。為了解決資訊爆炸所造成的困擾,順應隨時隨地連網的趨勢,替企業達成精簡資訊成本的目標,一種嶄新的軟體服務模式與資訊架構革命正以撲天蓋地之姿席捲全球,Google執行長施密特(Eric Schmidt)於2006年8月9日SES'06會議中首次使用「雲端運算(Cloud Computing)」來形容無所不在的網路服務,緊接著Amazon更以 Elastic Compute Cloud(簡稱EC2)命名其虛擬運算資源服務[1],[2]。2007年10月8日,Google與IBM發佈合作新聞稿,擬於美國境內七所大學教授如何處理海量資料的高速計算技術,從此引爆雲端運算的討論熱潮[3]。2008年時值全球金融風暴肆虐,多數人均擔心雲端運算只是一時的口號。2009年4月24日,美國國家標準局(NIST)起草雲端運算的標準定義[4];於同年5月,歐巴馬政府更明白地在2010年度國會預算書上,指出雲端運算是重要施政重點[5]。隨即,英國、日本、韓國等亦相繼宣佈將建立政府雲端的計畫,作為振興經濟的強心針。2010年被媒體喻為台灣的雲端元年,但每當談到雲端運算,不知大家是否心中仍存著諸多疑惑,冷眼看那不同廠商各說各話。底下就讓我們細說從頭,先給大家一個關於雲端運算的正式定義、看看雲端的技術演進史,最後說明為何Hadoop這個處理海量資料的軟體平台會逐漸被國際資訊大廠所重視。

笑談雲端五四三

  漫畫裡的呆伯特對老闆突然丟來的奇怪問題,總能用簡單的一句話敷衍過關。那麼如果要您用一句話簡單說明什麼是雲端運算,那該如何解釋呢?且讓小弟不聰贈送各位正經版與幽默版各一句來當作應對妙招,正經版可答道「雲端運算就是隨時隨地運用各種裝置來存取想要的服務」,幽默版可笑曰「雲端運算談的不外乎五四三(台語)啦~」倘若有人反譏您胡說八道,還有雲端口訣可以背得對方聽:「一個基本精神、兩個極端產業、三個服務模式、四個佈署模型、五個基礎特徵」,這不恰恰就是五四三二一嘛?!關於這雲端口訣的五四三可不是隨便說說,真是取自美國國家標準局(NIST)的雲端標準定義呢[6]!以下為各位看倌逐一說個明白。

  所謂「五個基礎特徵」,包括:(1)隨需自助服務(On-demand self-service)、(2)隨時隨地用任何網路裝置存取(Broad network access)、(3)多人共享資源池(Resource pooling)、(4)快速重新佈署靈活度(Rapid elasticity),和(5)被監控與量測的服務(Measured Service)。這五個基礎特徵的典型代表當然是Amazon Web Service。專家們認為未來進入雲端運算的時代,每個系統管理員將不再需要擔憂採購硬體的時間與流程,而是改以租賃方式,動態地根據需求,自助啟動或關閉所負責的資訊服務,而這些服務都是透過各種網路裝置來存取。此外,由於全球不同企業共享這些軟硬體甚至人力資源,從統計與機率上,若產業異質性高,便能有效地互補彼此尖峰使用的時間,間接降低了不同企業的資訊成本。當然為了達成動態調配共享資源的目的,雲端服務供應商必須具備快速重新佈署的靈活度,好讓各種被釋放出來的資源能馬上被其他客戶使用。最後,任何雲端服務都涉及計價行為,因此所有服務必須能被監控與量測,好統計租賃的帳單金額。

  至於「四個佈署模型」,指的是(1)公用雲端(Public Cloud)、(2)私有雲端(Private Cloud),及不常聽到的(3)社群雲端(Community Cloud)、(4)混合雲端(Hybrid Cloud)。公用雲端顧名思義就是全球一起共用某個雲端服務廠商的資源池,多半適用於資料機敏性低的新創事業或中小企業;而私有雲端則是由企業自行建置共享資源池,故任何資料機敏性高的產業都可能需要自行打造。社群雲端係指由多個組織共享資源池,故較合適具共享研究資料需求的學研單位合資建置;而混合雲端泛指混合了上述三種雲端型態,須基於標準或運用新技術來確保資料與應用程式在不同平台間的移植性。

  關於「三個服務模式」,也可稱之為不同雲端服務商的市場區隔,分別為:(1)架構即服務(Infrastructure as a Service,IaaS)、(2)平台即服務(Platform as a Service,PaaS)與(3)軟體即服務(Software as a Service,SaaS)。Amazon EC2的服務就是典型的架構即服務,讓用戶可自行租賃所需的運算、儲存與網路資源。而Google App Engine則是典型的平台即服務,讓用戶可以在共通的平台上進行程式開發或軟體佈署。大家常用的Yahoo、Gmail、Facebook等都算是軟體即服務的範疇,過去購買套裝軟體的模式,如今已逐漸典範轉移,改依需求變化,動態地變更租賃軟體服務的授權數量,用多少付多少。從企業經營成本面來看,過去採購硬體的固定成本,如今轉變成變動營運成本,在金流調度上將更有彈性。

  口訣最後的「兩個極端產業,一個基本精神」,談的是未來雲端將持續往兩個極端發展,一邊是雲(資料中心)的產業供應鏈,一邊是端(行動裝置)的產業供應鏈。雲的發展將是地理集中而標準化,而端的發展將是位置變異而多元化。而雲端運算之所以能融入各行各業,憑藉的是「形成網路服務」這個基本精神。惟有形成服務,才有商業行為,方能串起供需鏈,進而促進經濟的永續發展。

回顧資通六十載

  談完雲端的五四三,相信各位已對雲端運算有比較清晰的概念。那麼雲端運算代表的是全新技術嗎?其實不然,雲端運算只是軟體演化必然的趨勢。讓我們一同回顧資通產業過去六十年的發展:1960年代運算主力是超級電腦,1970年代才有個人電腦誕生,1980年代制訂TCP/IP通訊協定,1990年初期因為有GNU自由軟體基金會與Linus的貢獻,才產生第一次高速運算革命,讓個人電腦叢集(PC Cluster)以企鵝雄兵打敗超級電腦,大幅降低運算成本,平行運算(Parallel  Computing)頓時蔚為顯學。1990年代後期網路逐漸導入金融機構,分散式物件技術才逐漸流行。演化至2000年初,SETI@Home尋找外星人計畫,向全球電腦用戶借螢幕保護的運算資源,開啟分散式運算(Distributed Computing)的新頁。隨即全球高速電腦中心起而效法分散式運算精神,提倡格網運算(Grid Computing),擬能建立虛擬組織共享全球運算資源。格網運算雖立意良善,卻因遲遲無法形成服務而難以進入產業應用。直至2006年Amazon推出 Elastic Compute Cloud(EC2)才成功地建立隨需運算服務,開啟雲端運算的序曲。

  歷經超級電腦、平行運算、分散運算與格網運算,雲端運算繼承了平行運算的叢集技術、融合了分散運算的容錯特性,發展出「資料中心即電腦(Data Center as a Computer)」的新思維[7]。有別於格網運算將資料搬到有空閒計算資源的思維,雲端運算強調把工作丟到資料所在主機去計算。在雲端的年代,資訊人惟有不斷充實多核心、平行、分散式運算與網頁程式設計等技能,才有機會住進未來那朵大雲裡。

喜獲吉象過重山

  看完以上的趨勢分析,或許您不禁想問:「縱使知道雲端趨勢很重要,若想打造私有雲端,下一步該做什麼呢?總是得腳踏實地,而不是空口畫雲吧~」若您想打造私有雲端,可參考如下圖中所列舉不同技術分層的自由軟體,來建置您專屬的雲端服務。目前有專家學者警告企業導入雲端不該只是採購硬體或導入虛擬化。小弟認為這只是導入雲端第一個階段,後續將視各企業屬性不同而導入平台即服務與軟體即服務的相關技術。倘若您的企業需要架構即服務,擬導入虛擬層與控制層,這裡建議的自由軟體包括:Xen、KVM、OpenNebula與Eucalyptus這幾套。若您需要建置的是資料分析的平台服務,那接下來要介紹的Hadoop與美國資料探勘中心研發的Sector/Sphere都是首選。

  本文最後要談的是Hadoop這個海量資料分析的軟體平台,它有何特殊呢?為何Google與IBM合作教授雲端課程採用它?為何Yahoo搜尋引擎、Facebook社交網站、Last.fm網路電台、Joost網路電視等均採用它來進行資料分析呢?首先,倘若說Google是當今最能引導技術風潮的品牌,想必大家不得不同意。那麼Google的關鍵技術是什麼呢?Google有三大關鍵技術:其一是Google File System,為了提升營運容錯率,Google重新設計了一套分散式檔案系統來存放全球的網頁內容、電子郵件、照片、影片等;其二是MapReduce演算法,Google宣稱多數的資料分析都可以靠此一演算法解決;其三是BigTable分散式資料庫,Google將存在Google File System中的資料,經過MapReduce運算後,轉換成巨大的資料表,這個資料表有別於傳統關聯式資料庫,僅存放成對的Key-Value。因此,當您下達一個查詢網頁或查詢信件的動作前,Google早已將所有網頁、信件進行拆解分類存進BigTable,查詢下達時只是從BigTable查Key等於關鍵字對應的所有Value罷了。

  然而Google的三大關鍵技術沒有原始碼或軟體可讓其他企業安裝使用,好在Google佛心來著,分別公開了Google File Ssystem、MapReduce與BigTable的三篇論文,讓Hadoop這套軟體平台的創始人Doug Cutting能參考論文,重新實作了Hadoop Distributed File System(HDFS)與MapReduce API。諸多過去無法分析的資料,如今有了Hadoop軟體平台後,都開始可以分析了。例如:電信業者如今可以分析手機在基地台漫遊的特性,提供更好的在地費率。信用卡業者如今可以每天定期分析各種信用貸款所產生的風險,動態調整信貸利率。便利超商如今可以分析消費者的購買習慣,動態調整架上存貨數量。甚至新興產業,如生醫資訊、智慧電網等都可以運用Hadoop平台來進行資料探勘與趨勢預測。若您的企業有儲存海量資料的需求,有分析海量資料的需求,或者面臨資料庫過度龐大,正在尋求分散式資料庫或資料倉儲的技術,那Hadoop或許是一個已通過商業驗證的選擇。只要懂得駕馭Hadoop這隻大象,它將能駝著您爬過一座座資料大山,幫您犁出隱藏在群眾中的邏輯。
 

open_source_for_private_cloud.png
▲ 建構私有雲端運散架構的自由軟體

[1] Did Google's Eric Schmidt Coin "Cloud Computing"?
    - http://cloudcomputing.sys-con.com/node/795054/print
[2] Search Engine Strategies Conference 2006
    - http://www.google.com/press/podium/ses2006.html
[3] Google and I.B.M. Join in 'Cloud Computing' Research
    - http://www.nytimes.com/2007/10/08/technology/08cloud.html
[4] The US Federal Government defines Cloud Computing
    - http://www.elasticvapor.com/2009/05/us-federal-government-defines-cloud.html
[5] President Obama's 2010 Budget Highlights Cloud Computing
    - http://kevinljackson.blogspot.com/2009/05/president-obamas-2010-budget-highlights.html
[6] NIST Definition of Cloud Computing v15
    - http://csrc.nist.gov/groups/SNS/cloud-computing/cloud-def-v15.doc
[7] The Datacenter as a Computer
    - http://www.morganclaypool.com/doi/abs/10.2200/S00193ED1V01Y200905CAC006
最近開始有一些廠商透過 e-mail 傳達希望協助徵才的需求,
考量職缺是促進社群蓬勃發展的另一個動力,因此代公佈兩個 Hadoop 相關職缺

一個是 JAVA Architect/Senior JAVA Developer/JAVA Developer
一個是 Java Hadoop / Nutch Developer

各職缺描述如下:

職務名稱:  JAVA Architect/Senior JAVA Developer/JAVA Developer
需求人數:  2~4人
上班地點:  台北市南港軟體園區
上班時段: 上班時間:10:00;下班時間:19:00
休假制度:  週休二日

學歷要求:  大學、碩士

外語條件:  英文(聽/精通、說/精通、讀/精通、寫/精通)


[福利制度]
(1)員工認股制度 stock options
(2)保障年薪14個月

(3)週休二日及優於勞基法的休假制度(
到職當年度可享有7天特休假)
(4)彈性上下班
(5)人性化管理

[Job Descriptioni]

Our R&D center in Taipei, Taiwan is currently looking for experienced
Java developers to join the development team of CodeSecure. The team
is comprised of talented technologies who can think outside of box and
come up with innovative approaches to complex problems.


[Required Attributes]

Professional experience designing, implementing and maintaining
complex & distributed components
A passion to develop high-quality and scalable applications that solve
people's problems
Strong object-oriented design skills and a drive to create structured,
efficient and clean code
Good sense in algorithm and data-structures

Expert-level skills in writing maintainable components in Java
Basic understanding of version control systems (SVN, Mercurial) is a plus
Able to produce good documentation for codes
Basic experience with Linux system is a plus

A result driven team player
Likes coding

Innovative, always in search for better methods to improve
productivity and quality
Keen to learn new skills to adapt business needs
Be able to think independently, coupled with good communication skills

相關網站(官網及影片介紹):
http://www.youtube.com/watch?v=G7nCLP4b6us
http://armorize-cht.blogspot.com/2010/02/caleb-sima.html
http://www.armorize.com

履歷請寄 tina at armorize dot com


職務名稱:  Java Hadoop / Nutch Developer

需求人數:  2人
上班地點:  台北市南港軟體園區
上班時段: 上班時間:10:00;下班時間:19:00
休假制度:  週休二日
學歷要求:  大學、碩士
外語條件:  英文(聽/精通、說/精通、讀/精通、寫/精通)

[福利制度]
(1)員工認股制度 stock options
(2)保障年薪14個月
(3)週休二日及優於勞基法的休假制度(到職當年度可享有7天特休假)
(4)彈性上下班
(5)人性化管理

[Job Descriptioni]

Our R&D center in Taipei, Taiwan is currently looking for experienced
Java developers to join the development team of HackAlert. We are
currently in the process of migrating part of the product onto the
Hadoop platform, to leverage the Nutch crawling engine and distributed
storage like HBase. You will also interface with dynamically created
virtual machines in the cloud.

[Required Attributes]

*Professional experience designing, implementing and maintaining
complex & distributed components
*A passion to develop high-quality and scalable applications that
solve people's problems
*Strong object-oriented design skills and a drive to create
structured, efficient and clean code
*Expert-level skills in writing maintainable components in Java
*Knowledge about distributed systems and parallel computations
desired, experiences with Hadoop/Map-Reduce a big advantage
*A deep understanding of the HTTP protocol, web crawling in general
and previous exposure to Nutch is a big advantage
*Basic understanding of distributed storage systems (Big Table, HBase..) desired
*Basic understanding of version control systems (SVN, Mercurial) is a plus
*Experience with Linux systems and basic web server maintenance and
deployments is a plus
*Experience with remote VM management a plus
*Experience with Agile Methodologies is a plus

相關網站(官網及影片介紹):
http://www.youtube.com/watch?v=G7nCLP4b6us
http://armorize-cht.blogspot.com/2010/02/caleb-sima.html
http://www.armorize.com

履歷請寄 tina at armorize dot com

工商服務一下,代某知名半導體廠貼一下職缺。

Job description:

  • Study and implement cloud computing technologies and provide proposal for critical system availability improvement for high volume data processing improvement.
  • Collaborate with project teams to pilot and promote cloud computing technologies.
Job requirement:

  • MS degree or above in computer science or related disciplines.
  • At lease 2-year experience in the Hadoop/map reduce, virtualization, grid computing or cloud computing.
  • Ability to learn and apply new technologies quickly.
  • Self motivated, good teamwork and problem solving skill.
  • Experienced in data center management  related fields is a plus.
  • Fluent English communication skill is a plus (oral and written).
工作地點:新竹

履歷資料或相關職缺問題請寄至 yytai AT tsmc DOT com
最近巡迴演講的時候,有一些學生問我該不該參加教育訓練跟認證考試,
也提到想團報,可是卻不好找團員,所以如果有興趣,
又不想公然把 e-mail 丟上 hadoop.tw mail list  的,那填這個表吧。

https://spreadsheets.google.com/viewform?formkey=dDNpNy1HZHhWQkI2SmhncW5Cei1xcnc6MA

至於大家常問的問題,以下統一回給大家作參考:

F.A.Q.

Q1: 學生到底該不該考 Cloudera Hadoop Training and Certification?
A1: 如果沒有「長輩」贊助的話,是略嫌貴了點。
PS. 小道消息:以後可能會有純考認證的機會。如果已經面臨畢業找工作的壓力,又想提升求職競爭力,那只好自己考慮一下荷包裡的小朋友夠不夠多張了.....我會持續橋看看能不能有「學生價」....倒數兩週了....

Q2: 考 Hadoop 證照對找工作有沒有幫助?
A2: 嗯~國內很難講,國外至少在 Hadoop LinkedIn 看到很多工作機會。國內有興趣到 Yahoo, 中華電信, 趨勢的可以考慮看看。
PS. 好奇國外有哪些工作機會的請參考 LinkedIn Hadoop User Group 的 Job 版

Q3: 參加 Cloudera 紐約場次教育訓練有何心得?
A3: 教材是真的蠻扎實的,縱使我們有先翻過英文版,第二天對於企業員工來說,應該是可以解答一些心中的疑惑,像是怎麼跟資料庫整合。但第三天沒有演算法基礎的下午會有點吃力,Hadoop 初學者要有鴨子聽雷的心理建設,第一天下午就講了非常多底層實作的秘辛。
PS. 推薦 Yahoo Developer Network 的 Hadoop Tutorial

Q4: 考照難不難?
A4: ㄜ~老實說我有考,但是第一次沒有過,正在等七天後才能考第二次。線上考試,限時一個半小時,共六十題選擇。內容以 Hadoop 核心觀念為主。警告:五個答案選項會非常地模擬兩可,常常任兩個選項只差幾個英文字,基本上國外考過的都說難。

Q5: 有沒有題庫?
A5: ㄜ~(消音)如果跟大家說有,這樣就快變成考照補習班招生了~

Q6: 其他.......
A6: 推薦有機會的話,請參加 Jimmy Lin 主講的華盛頓場次,他在 MapReduce 方面很強,最近發表一本 MapReduce 的免費電子書,又是馬里蘭大學雲端運算中心的成員,是強者中的強者。

- Jazz

Hadoop4Win 0.1.2 版釋出供下載

|
軟體簡介

hadoop4win,顧名思義為『Hadoop for Windows』,主要是提供 Windows 平台上簡易安裝 Hadoop 的批次安裝檔。此批次安裝檔內容,主要參考自國網中心企鵝龍與再生龍團隊成員孫振凱先生之 drbl-winroll 作品,抽取安裝部分程式改寫成 hadoop4win 所需的步驟。

hadoop4win 目前包含三大軟體組成:

  • Cygwin - 提供精簡版,類似 Linux 的環境
  • JDK 1.6.0 update 18 - 運行 Hadoop 必須的 JRE(Java Runtime Environment) 與編譯程式所需之 javac 編譯器
  • Hadoop 0.20.1 - 包含 Hadoop 0.20.1 原始程式與中英文說明文件檔

檔案下載

改版紀錄

  • 0.1.2 alpha - 2010/02/06 :
    • 改回 Cygwin 1.5.25 版本的套件庫 - 感謝 Yi-Kai Tsai 回報 0.1.1 版無法正確執行 wordcount 範例的 BUG
  • 0.1.1 alpha - 2010/02/04 :
    • 改用 Cygwin 1.7.1 版本的套件庫 - 並且改用 "-P" 參數指定欲額外安裝套件
    • 修改 hadoop4win-setup.bat 批次檔,以因應 Cygwin 1.7 版本的 setup.exe 差異。
    • 新增 HADOOP_HOME、HADOOP_CLASSPATH、HADOOP_CONF_DIR 環境變數至 hadoop-env.sh - >感謝 Yi-Kai Tsai 建議
    • 新增 /opt/hadoop/bin 與 $JAVA_HOME/bin 到 /etc/profile 的 PATH 環境變數,讓每個>使用者可以簡單輸入 hadoop 指令 - 感謝 Yi-Kai Tsai 建議
    • 修改 start-hadoop 並加入 start-hadoop-daemon 命令,另行開一視窗啟動 HDFS Name Node、Data Node 與 MapReduce Job Tracker、Task Tracker 子程序。如此一來可以避免 CTRL+C 觸發 SIGINT 而強制停止所有 java 程序。 - 感謝 Yi-Kai Tsai 找出重現 BUG 的主因(Ctrl+C)
    • 新增 stop_hadoop 指令至 ~/.bash_logout 與 /etc/skel/.bash_logout,以確保離開 Cygwin 時關閉 HDFS 與 MapReduce -- 若要保留 java 程序,可手動移除
    • 新增 hbase-init、start-hbase、start-hbase-daemon、stop-hbase 來初始化 hbase 下載、安裝、設定、啟動 ZooKeeper、Master、RegionServer 的程序。
  • 0.1.0 alpha - 2010/01/22
  • 0.1 alpha 
2010/01/22 基於 drbl-winroll 修改為 hadoop4win 嚐鮮版

反應意見


安裝方法

  • STEP 1 : 首先下載 hadoop4win 任一版本,並存至硬碟(如 D:)。使用 Windows XP 以上版本內建的解壓縮工具將 zip 壓縮檔解開。
  • STEP 2 : 在 hadoop4win-setup 目錄中,執行 hadoop4win-setup.bat 批次檔。
    • 註:預設將安裝到 C:/hadoop4win 中,若因硬碟存取權限較嚴格,需修改安裝路徑,請自行修改 hadoop4win-setup.bat。
  • STEP 3 : 一開始會出現 Cygwin 的安裝畫面,並自動開始安裝 Cygwin。
  • 接著批次程式將會把 Hadoop 單機版所需之 Java 開發環境 (JDK 1.6.0 update 18)與 Hadoop 0.20.1 壓縮檔拷貝至安裝目錄。若您下載的是網路安裝版本,會看到批次檔先從網路上下載兩個壓縮檔,才開始安裝。
  • STEP 4 : 當拷貝完成後會進入 Cygwin 視窗。此時,請輸入指令『hadoop4win-init』。
  • 此初始化指令將會進行 JDK 與 Hadoop 解壓縮動作
  • 最後將會執行 Hadoop Namenode 的格式化
  • STEP 5 : 按下任意鍵會依序啟動 Hadoop Name Node, Data Node, Job Tracker, Task Tracker
  • 並使用預設瀏覽器依序開啟 http://localhost:50030http://localhost:50070 (若使用 IE 可能會只看到一個畫面)

測試方法

  • STEP 6 : 此時系統已完成 Hadoop 0.20.1 的 tar ball 安裝,可以參考 國網中心雲端運算課程(一) 之教學進行相關測試。目前將 Hadoop 0.20.1 安裝於 /opt/hadoop 路徑下,故使用者必須先切換至該目錄才能進行相關指令操作。
    $ cd /opt/hadoop
  • STEP 7 : 練習 HDFS 指令: 『bin/hadoop fs -put <local file/dir> <HDFS file/dir>
    $ bin/hadoop fs -input conf-org input
  • STEP 8 : 練習 HDFS 指令: 『bin/hadoop fs -lsr <HDFS file/dir>
    $ bin/hadoop fs -lsr
  • STEP 9 : 練習 MapReduce 丟 Job 指令: 『bin/hadoop jar <local jar file> <class name> <parameters>
    $ bin/hadoop jar hadoop-0.20.1-examples.jar wordcount input output
  • STEP 10 : 練習從 http://localhost:50030 查看目前 MapReduce Job 的運作情形
  • STEP 11 : 欲離開 Cygwin 環境前或者要暫時關閉 Hadoop 系統時,請輸入指令『stop-hadoop』。

  • STEP 12 : 欲重新啟動 Hadoop 系統時,請輸入指令『start-hadoop』。

已知問題

  • [備註] 由於 Hadoop 0.20.1 的 HDFS 檢查比較嚴謹,因此單機狀態下,您會看到 http://localhost:50070 顯示『Safe Mode is ON』等字樣,代表 HDFS 目前是被封鎖住寫入權限,需等待至少 30 秒以後才會恢復正常。亦因此,http://localhost:50030 若剛開始沒有 Task Tracker 連上來,也是因為 HDFS 處於安全模式(Safe Mode)造成,須等 30 秒後切回正常模式才會連上。
    • [備註] 若需要重新啟動 Cygwin 環境,請至 C:\hadoop4win 目錄執行 cygwin.bat 批次檔
當今三大資料庫公司 (微軟,IBM,Oracle) 對於近年爆紅的資料處理技術 Hadoop 分別有著決然不同的反應.

SybaseTeradata 等 data warehouse 公司紛紛擁抱 Hadoop/Mapreduce 技術的時候,  很顯然的, 微軟正在抗拒著. 威斯康辛大學教授 David J. DeWitt 同時也是 Microsoft tech fellow 說 "我們不打算引入Hadoop到我們的產品當中". 他對於 Hadoop 不感興趣其實並不令人意外, DeWitt 教授是 parallel SQL databases 學術專家, 年初才和他人共同發表了一篇關於 SQL Server 仍可以在大多數的工作上擊敗MapReduce 的論文.

IBM 本身是 Apache 軟體基金會的主要贊助公司之一,不令人意外地, IBM 對 Hadoop 的發展則是樂觀其成. Anant Jhingran, IBM information management division 的 CTO 提到: "我並不是說Hadoop 融合資料庫可以解決一切問題, 但是最終每個公司將會想要擁有 Hadoop 技術, 只是不確定是以哪種形式". IBM 在實驗室進行研究開發的同時, 也正與數十家企業用戶進行相關實驗計劃.

Oracle 有可能是 Hadoop/MapReduce 崛起後最大的輸家, 不僅僅是因為它本身目前是第一大資料庫軟體廠商,也因為資料庫在延展性(Scalability)方面的名聲不佳 - 而這正是 Hadoop/MapReduce 的強項. Oracle 並未正式回應, 不過就在今年十月,它們發佈了一篇 blog 談到 "事實上我們一直以來都在用 MapReduce"



hadoop-tw.jpg


台灣 Hadoop 使用者社群會議
Hadoop Taiwan User Group Meeting 2009


繼格網運算之後,雲端運算被視為下一代資訊架構的主流。雲端運算平台 Hadoop 及雲端資料庫平台 HBaseHive 均是目前諸多雲端運算服務的基礎架構。 Cloudera 是目前全球首先提供自由軟體 Hadoop 技術支援的商業公司,本次使用者會議特別邀請來自 Cloudera Christophe Bisciglia 來跟我們分享如何運用 Hadoop 打造雲端應用程式與軟體服務,並分享自由軟體的可行商業模式:教育訓練與認證機制。此外,也邀請了國內推動Hadoop 教學、軟體開發、社群建立的幾位同好來進行知識分享,包括:台灣雅虎老魚研究室國立台灣大學資訊工程學系通訊與多媒體實驗室國家高速網路與計算中心雲端運算研究小組。希望透過此次會議,讓更多有興趣瞭解 Hadoop 的夥伴相互交流,進行凝聚出台灣區的 Hadoop 社群。
本會議不收取任何報名費用,歡迎各界踴躍參加。礙於此次會議場地座位有限,請速上網報名(http://registrano.com/events/hadoop-tw),額滿為止。
也請大家代為宣傳(議程PDF版)。

Cloud Computing is a hot research topic since year 2007. Hadoop, HBase and Hive are the key components of many cloud computing infrastructures.  Cloudera is the first company to provide technical support of Hadoop. In this workshop, we invite Christophe Bisciglia to share the experience of how to build cloud services with Hadoop and  Cloudera's open source business model - training and certification. Besides, we also invite local developers of Taiwan Hadoop communities to share their projects.
  This workshop is now free to register. Please use following URL to join this event.  http://registrano.com/events/hadoop-tw

09-10-21_Schedule_small.png


Hadoop 計畫分割

|
應該有些人注意到前一陣子 Hadoop 決定進行計畫分割,最主要的改變是將原本 Hadoop Core 這個計畫分割為三個計畫, Hadoop Common, HDFSMapReduce. 為何要進行這樣的改變呢? 主要的原因是 Hadoop 越來越熱門了! 首先碰到問題是原先開發用的 mail listing 量暴增 , 每天都有數十個以上的 JIRA 訊息. 再來是計畫本身的 code base 也不斷的在長大 (300,000+ lines of Java) 另外就是之前有蠻多人很有興趣的部份,單獨使用 HDFS. 因此決定將原本的 Hadoop Core 分成三個計畫, 分別有各自的 svn repository , JIRA 和 mail lists. 原先使用者用的 core-user@hadoop.apache.org 更名為 common-user@, 另外對應產生了 mapreduce-user@ 和 hdfs-user@.

對於使用Hadoop上面來說, 短時間內 Stable 版本(0.18,0.19,0.20)不會有影響, 到 0.20.1 仍然會是以 single project 的方式 release. 之後每個 project 會分別有有自己的 release , 使用上將會需要同時安裝數個 packages. 同時 Configure 上也需要注意, 從 0.20 開始應該已經要把單一的 hadoop-site.xml 分開為 mapred-site 和 hdfs-site , 0.21 版之後才可繼續使用. 至於 API 方面, 從 0.20 開始 MapReduce 已經導入新的 API 但是尚未完全使用 , 將會在 0.20.1 修復完成, 同時 0.20.1 release 之後也代表了你應該準備升級你原來的程式碼了.

HadoopProjectSplit.png
Image from: Cloudera

跨產業應用思考--以線上遊戲為例

|
Hadoop, 這個分散式系統, 再加上 Map&Reduce 的計算, Google用來平行計算大量的資料, 在效能與容錯上表現得非常出色, 在本人服務的公司中, 應用這様的系統在處理某一批大量資料來說, 從過去以往舊程式的方法需要2星期左右完成, 現在只要10多分鐘就可以執行完畢.

同樣的應用, 如果套用在目前很熱的線上遊戲產業上, 可以應用的情形如下:

  1. 統計單一遊戲中, 所有玩家的操作動作中, 最常使用的技能排序
  2. 統計單一遊戲, 所有人的聊天問答的內容, 找出最常出現的關鍵字, 把這些關鍵字排序, 可以適當地幫助新手 (就像使用 google 在查詢時, 會自動帶出相關字)
    • 類似的關鍵字, 也可以提供給客服人員使用
    • 關鍵字的查詢, 也可以套用在web上, 當作是遊戲百科全書
  3. 快速分析遊戲中物品的產生記錄, 比如一個月內的物品產生記錄, 用來調整遊戲的掉寶率
以上就有可能可以應用Hadoop以及 Map&Reduce 的計算能力, 在短時間內完成.

一點意見, 可以參考看看, 說不定也可以應用在你熟悉的產業中. 

上個月21號在 Rapleaf.com 有舉辦一場 Hadoop 技術研討會, 有幾個重要的 Topic 摘要如下:

  1. The Collector - Multi-Writer Appends into HDFS
    by Bryan Duxbury, Software Engineer at Rapleaf
    http://www.vimeo.com/2084824
  2. Katta - 運行環境中的分散式 lucene 索引
    by Stefan Groshupf, Founder/CTO at 101tec Inc. and Co-Founder at Scale Unlimited Inc.
    http://www.vimeo.com/2085140
  3. MapReduce 應用程式除錯和調教
    by Arun C Murthy, Principal Engineer at Yahoo! and Member of Apache Hadoop PMC
    http://www.vimeo.com/2085477

由於不管是在分散式系統或是平行處理系統上面開發程式, 其除錯遠比開發一般程式來的複雜許多,  這篇 MapReduce 應用程式除錯和調教 對於在已經或是打算在 Hadoop 上開發的人來說都是篇很不錯的參考文件.

國家高速網路與計算中心將於97年11月4~5日邀請 Devaraj Das ( Engineer Manager,Grid Computing Group, Yahoo! Bangalore ) 來台演講, 有興趣的人歡迎直接跟王耀聰先生聯絡 <jazz AT nchc org tw>.

最近年來不管是雲端運算(Cloud computing) 或是網格運算(Grid computing) 都相當的熱門, 而它們的核心技術 MapReduce 則受到相當程度的重視. 04 年時 MapReduce 一開始被 Google 所提出來, 它本身是一種程式開發的模式,可以用來處理大量的資料. 但因為長時間以來, 不管是在學校或是業界, 資料庫系統都廣泛的被教授和使用,很多人一看到"處理大量的資料", 自然的就會把 MapReduce 跟資料庫系統放在一起, 拿來做比較等等, 因而產生一些錯誤的認知.

目前任職在 Google 的 Mark 日前撰寫了一篇文章 Databases are hammers; MapReduce is a screwdriver 來說明這兩者的不同. 這篇文章是我個人認為目前在網路上說明 MapReduce 文章當中寫的最貼切且淺顯易懂的. 經過原作者的同意 , 我把它翻譯成中文, 希望讓更多人藉著閱讀這篇文章來了解 MapReduce.