天天看點

《Pig程式設計指南》一1.2 Pig發展簡史

本節書摘來異步社群《pig程式設計指南》一書中的第1章,第1.2節,作者: 【美】alan gates 譯者: 曹坤,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

pig最初是作為yahoo!的一個探索性的項目,yahoo!的科學家們設計了pig并且給出了一個原型實作。正如2008年發表在資料管理專業委員會(sigmod1})雜志的一篇論文所描述的,研究者認為hadoop所描述的mapreduce架構“過于底層和嚴格,需要使用者花費大量時間編寫代碼,而且很難維護和重用。”同時他們注意到mapreduce使用者對像sql這樣的聲明式語言并不熟悉。是以他們着手開發“一種叫做pig latin的新語言,這種語言被設計為在像sql這樣的聲明式類型的語言和像mapreduce這種較底層的過程式的語言之間達到一個非常好的平衡點。”

最初yahoo!的hadoop使用者開始采用pig。之後一個開發工程師團隊開始接手pig的最初原型并将pig原型開發成一個達到産品級别的可用産品。在這個時間點左右,也就是2007年的秋天,pig通過apache孵化器進行開源。一年後也就是2008年的9月,pig的第一個釋出版本出現了。同年的晚些時候,pig從孵化器中畢業,正式提升為apache hadoop項目的一個子項目。

2009年早期其他公司在他們的資料進行中開始使用pig。amazon也将pig加入它的彈性mapreduce服務中的一部分。2009年末,yahoo!公司所運作的hadoop任務有一半是pig任務。在2010年,pig發展持續增長,這一年pig從hadoop的子項目中脫離出來,自己成為了一個最進階别的apache項目。

為什麼叫做pig 有一個問題經常被問起,那就是“為什麼把它命名為pig?”人們還想知道是否pig這個詞是由縮寫字母組成的。回答是否定的。事實上最初開發這個項目的研究人員隻是簡單地把它稱為“那種語言。”不過他們終究需要為它起個名字。一名研究人員的腦海中出現了pig這個單詞,然後就提議稱它為pig,這個名字一下子就讓大家驚住了。這個名字古怪但是容易記也容易讀。雖然有些人暗示這個名字聽起來有點别扭或者傻,但是因這個名字促使了我們一個非常不錯的命名方法,例如把這種語言命名為pig latin,把終端互動命名為grunt,把一個共享資源庫性質的分支成為piggybank。