April 2010 Archives

「雲端運算與應用」系列演講(五)
雲端分散式資料庫 Apache HBase
"Cloud Computing and its Application" lecture series:
Apache HBase

   資料庫應用對於資訊產業已是不容或缺的一環,但隨著資料巨幅地成長,傳統關聯式資料庫將面臨無法持續擴充的效能瓶頸。知名雲端服務提供者谷歌(Google)針對大量資料的儲存、分析與查詢,分別提出 Google File System 分散式檔案系統、MapReduce 演算法與 Big Table 分散式資料庫。Apache 基金會的 Hadoop 專案實作了前兩者,而 HBase 則基於 Hadoop,提供分散式資料庫的解決方案。此次演講很榮幸邀請到現任趨勢科技資深軟體架構師,也是 HBase 專案關鍵貢獻者(Commitor)的 Andrew Purtell 來為大家介紹 Apache HBase 專案的近期發展,歡迎對於雲端分散式資料庫系統感興趣的同好踴躍參加。

   Andrew Purtell is a Senior Architect at Trend Micro. He has been a committing member of the Apache HBase project since 2008. Andrew has been a research engineer involved with leading edge technologies for more than 10 years, including large scale distributed systems, Internet technologies, and operating systems.

   In this talk, we will discuss the current state of Apache HBase and its capabilities and also what is upcoming in the near future, such as Improved data durability (with HDFS-200), Clearly defined ACID properties spec (and tests), Discretionary access control, Multi data center replication, etc.

13:30~15:00 講 題:Apache HBase
講 者:Andrew Purtell, Senior Architect of Trend Micro
15:00~15:30 Q & A


註:響應政府儉樸原則,本活動不提供餐點,敬請見諒。

Pig Latin ── Language for Large Data Processing

|

這裡要介紹一種分析龐大資料的語言:Pig Latin。Pig 是一個 Hadoop 的子計劃。底下假設大家對 Map-Reduce 和 SQL 有基本的認識,但沒有也不要緊,我從一個例子談起。

 

任務!

假設我們有一份使用者和年齡的資料,以及一份他們去過哪些網站的記錄:

  pig_sampleinput_new.PNG這資料很大很大,放在 hadoop 上面。如果想要知道「18歲到25歲的使用者看的百大網站」,該怎麼做呢?

在 Hadoop 上寫程式解決問題有很多方式:可以用 native API 寫 Map-Reduce 或者用 streaming。在這裡要介紹的是另一種方式 ── 利用 Pig。

如果用 Pig ,你只需把這短短的程式碼存起來:

pig_samplecode_new.PNG然後在命令列下打 pig myscript.pig 執行後就解決了。這程式碼有沒有感覺和 SQL 有點像呢!這就是 Pig 的特色。

 

pig_stack.PNGPig 是什麼?

稍微精確一點地說,上面看到的程式語言叫做 Pig Latin 。我們可以用 Pig 這個系統,把 Pig Latin 語言翻譯成 Map-Reduce 的樣子並且讓 Hadoop 來執行。

Pig Latin 是專門設計來做大量資料分析的語言。雖然分析有百百種,不過 Pig Latin 挑選大家常會用的操作變成指令,例如 GROUP、FILTER、JOIN 等等,和 SQL 很類似。如果要在 Hadoop 上對資料進行這一類的處理,Pig Latin 是個可以考慮的工具。

 

Pig 好玩嗎?

Pig Latin 具有下面的特點:

資料承載擴充性高

Pig Latin 設計理念是能在多台機器上平行執行的語言 ── 例如在 Hadoop 平台上。Pig 的運算指令都是挑選過,適合平行運算的才納入。即使資料越來越大,對於撰寫 Pig Latin 的人來說是完全透明的,並不會感受到任何影響(就像上面的範例程式,你不會看到資料要去哪幾台拿,運算要分散到哪些機器上算)。

功能彈性

Pig Latin 和 SQL 類似,是由一些高階抽象的指令組合而成,如果拿語言本身與 C, Java 相比並不能說有彈性。但 Pig 有兩個很重要的進階功能,讓大家在處理問題的時候更有彈性:一個是 User-defined Functions (UDF,使用者定義函式),另一個是 Embedded Pig (內嵌式 Pig)。前者讓你用 Java 寫比較複雜的函式,然後在你的 Pig 主程式裡使用之。後者則是相反,讓你能在你的 Java 主程式內嵌執行一些 Pig 的指令(就如在 php 裡執行 MySQL 一樣)

 

我們把 native API 寫 map-reduce 和 Pig 相比較的話:

Map-Reduce
using native API
Pig
嶄新的思維,運算邏輯分成一段段的 mapper/reducer 很像 SQL,把複雜的 Map-Reduce 思維隱藏起來。擷取程序性語言(如 C, php)一步一步做的形式,和 SQL 複合子句的形態相比又更直覺些
物件多、程式碼長 程式碼短
許多物件要維護,流程隱藏在多組的 mapper/reducer 程式易讀,從程式就可以看出整個執行的流程
花額外心力在初始化、資料型態、物件定義等等 專心在資料處理本身

上面的比較並不是絕對的:跟問題的本質、開發者的習慣、熟練度等等也很有關,但一般來說,Pig 具有容易學、開發快、好維護等特性。

 

講了這麼多 Pig 的好處,那到底該怎麼寫呢?關於 Pig Latin 的語法將會有另一篇文章來介紹,讓大家更了解 Pig,更了解一個強大的工具。

 

參考連結

Pig website: http://hadoop.apache.org/pig/

Pig paper: http://www.cs.cmu.edu/~olston/publications/sigmod08.pdf

「雲端運算與應用」系列演講(四)
pomsets 雲端工作流程管理分享
"Cloud Computing and its Application" lecture series:
pomsets : Workflow management
for your cloud

    當雲端運算遇上動畫製作,會激盪出什麼樣的火花呢?工作流程管理在雲端運算架構中,是蠻容易被忽 略的一個組成元件。然而,若是對Amazon Web Service 夠熟悉的話,會發現在 Amazon 提供的服務中,也有一些與流程管理有關,如:Amazon SQS (Simple Queue Service)、Amazon SNS (Simple Notification Service)。此次演講很榮幸邀請到 Nephosity 的創辦人 Michael Pan 來為我們介紹 pomsets 這套軟體(非商業用途為 GPL 授權),Michael Pan 擁有豐富的分散式運算工作經驗,更曾參與史瑞克三、功夫熊貓、馴龍高手、史瑞克:快樂 4 神仙等動畫製作。歡迎有興趣了解雲端工作流程管理的自由雲端同好踴躍參加。

    Workflow management is the design, specification, and coordinated execution of jobs and their dependencies necessary to perform some computing task. It is an important, yet unaddressed component of the cloud computing software stack.

    In this talk, we begin by explaining the motivation for workflow management. To address the problem at hand, we introduce pomsets, a cloud enabled workflow management system. After a brief introduction of its features, we will use a live demonstration. If time permits, we will present an actual use case and provide statistics on how pomsets reduces computation in a real life application.


15:00~15:10  引言
15:10~16:30  講題:pomsets: Workflow management
   for your cloud

講者:Michael Pan, CEO of Nephosity
16:30~16:40  Q & A

註:響應政府儉樸原則,本活動不提供餐點,敬請見諒。
各位同學,

離開課還有幾天,終於向 Cloudera 爭取到學生特惠價 25,000
不過無論是先前的三人團報每人 39,000 或學生五人團報每人 25,000
我看過網站說明,都是必須信用卡線上付款才有這樣的優惠,而且不提供發票。
若需要發票,則維持原價每人 59,000,且必須在網站上選"Show other payment options"

cloudera_other_payment.jpg

只要(1) 具備學生身分,(2) 未來或過去寫過 Hadoop、Sqoop、Hive、Pig 等相關雲端運算論文者,
請一樣填寫這份表格,我會跟你們聯繫。

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

- Jazz