《Pig编程指南》一1.2 Pig发展简史

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。

时间: 2024-10-27 15:22:33

《Pig编程指南》一1.2 Pig发展简史的相关文章

《Pig编程指南》一1.1 Pig是什么?

第1章 初识Pig Pig编程指南 1.1 Pig是什么? Pig提供了一个基于Hadoop的并行地执行数据流处理的引擎.它包含了一种脚本语言,称为Pig Latin,用来描述这些数据流.Pig Latin本身提供了许多传统的数据操作(如join.sort.filter等),同时允许用户自己开发一些自定义函数用来读取.处理和写数据. Pig是一个Apache开源项目.这意味着用户可以免费下载源码或者二进制包,自由使用它,对这个项目贡献自己的代码,同时也可以在Apache License的许可范围

《Pig编程指南》一2.1 下载和安装Pig

2.1 下载和安装Pig 用户需要下载和安装Pig,才能在本地机器或者Hadoop集群上使用它.如果用户已经了解并完成了这一操作,那么可以直接跳到2.2节"运行Pig"进行阅读. 用户既可以直接下载Pig安装包也可以先下载源代码然后自行进行编译.当然同样也可以以Hadoop分支的方式获得Pig. 2.1.1 从Apache下载Pig软件包 这个是Apache Pig的官方版本.它是一个软件包,里面包含了运行Pig所需的所有JAR包.用户可以通过访问Pig发布页面进行下载. Pig不需要

《Hive编程指南》一1.2 Hadoop生态系统中的Hive

1.2 Hadoop生态系统中的Hive WordCount算法,和基于Hadoop实现的大多数算法一样,有那么点复杂.当用户真正使用Hadoop的API来实现这种算法时,甚至有更多的底层细节需要用户自己来控制.这是一个只适用于有经验的Java开发人员的工作,因此也就将Hadoop潜在地放在了一个非程序员用户无法触及的位置,即使这些用户了解他们想使用的算法. 事实上,许多这些底层细节实际上进行的是从一个任务(job)到下一个任务(job)的重复性工作,例如,将Mapper和Reducer一同写入

使用 Override 和 New 关键字进行版本控制(C# 编程指南)

原文地址:点击打开链接 C# 语言经过专门设计,以便不同库中的基类与派生类之间的版本控制可以不断向前发展,同时保持向后兼容. 这具有多方面的意义.例如,这意味着在基类中引入与派生类中的某个成员具有相同名称的新成员在 C# 中是完全支持的,不会导致意外行为. 它还意味着类必须显式声明某方法是要重写一个继承方法,还是一个隐藏具有类似名称的继承方法的新方法. 在 C# 中,派生类可以包含与基类方法同名的方法. 基类方法必须定义为 virtual. 如果派生类中的方法前面没有 new 或 overrid

高质量C++/C编程指南

              高质量C++/C编程指南         文件状态 [ ] 草稿文件 [√] 正式文件 [ ] 更改正式文件 文件标识:   当前版本: 1.0 作    者: 林锐 博士 完成日期: 2001年7月24日     版本历史   版本/状态 作者 参与者 起止日期 备注 V 0.9 草稿文件 林锐     2001-7-1至 2001-7-18 林锐起草 V 1.0 正式文件 林锐     2001-7-18至 2001-7-24 朱洪海审查V 0.9, 林锐修正草稿

《高质量C++C编程指南》纠错与拾遗(一)

使用C++/C编程的程序员,几乎都看过林锐博士写的<高质量C++C编程指南>这篇百页经书,并且通过阅读这篇百页经书,受益匪浅.我也是这篇文章的受益者.通过这篇百页经书,我学到很多知识,也给于了我深入学习C++的动力. 最近,偶得机会,再次拜读林锐博士的<高质量C++C编程指南>,发现里面有些观点颇有争议,本文作者对这些观点进行的了考证,整理,汇总,形成了此文档,这里绝无批驳,贬低<高质量C++C编程指南>之意,其目的有二,一:阐述本文作者对<高质量C++C编程指南

ColdFusionMX 编程指南 ColdFusionMX中的循环_ColdFusion

第五期:ColdFusionMX中的循环 序言       任何一种程序再简单也要具备一定的逻辑和算法,Coldfusion也不例外.如果只是靠简单的标签的堆砌,是无法真正实现企业商业逻辑的.而且,我在这里非常肯定的提出一点,就是简单绝对不等于功能弱小.目前,网络技术发展到了一个注重表现的时代,就是每一个开发出来的网络应用,要在实现逻辑的同时,具备让客户有丰富的用户体验是另一个追求的目标.Flash+Flashremoting+cf serverside script就是一种极具体验的开发手段.

《iOS编程指南》——第 1 章为何选择本地化应用

第 1 章 为何选择本地化应用iOS编程指南早在2007年发布iPhone的时候,苹果并没有一同发布本地化SDK,苹果公司声称不需要本地化SDK,鼓励大家使用JavaScript,CSS和HTML开发Web应用.但接下来剧情并没有按照苹果设计的那样发展,也许是苹果的思想太超前,大多数开发者并不吃这一套,他们希望自己开发的应用和iOS系统内置的应用一样,可以直接访问硬件并和系统高度集成. 于是在iPhone发布后短短几个月,开源社区就完成了一系列苹果原本认为不可能的事情.苹果本来试图通过技术手段把

《JavaScript面向对象编程指南(第2版)》——导读

**前言**本书是<JavaScript面向对象编程指南>的第二版.前一版由Stoyan Stefanov著(Packet出版社发行),在业界广受好评.然而,自第一版发行至今已过了五个年头.期间,JavaScript由一项主要适用于浏览器客户端的计算机技术,逐渐发展成为一种多功能的程序设计语言,甚至连服务端也能由它来编写.所以在这一版中,我们继续带领大家学习JavaScript的"语言部分",即其重心依然会放在JavaScript语言本身(独立于运行环境部分),着重讨论EC