1.2 Pig发展简史
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。