1. Apache Pig
在本章中,提供了Apache Pig基于Apache的MapReduce高级工具的基本介绍。 本章可以帮助那些从事Hadoop工作的专业人士,并希望使用高级脚本语言执行MapReduce操作,而不是使用Java开发复杂代码。
2. Apache PIg介绍
Apache Pig 的历史
作为雅虎2006年的一个研究项目,开发Apache Pig是为了在大型数据集上创建和执行MapReduce作业。在2007年,Apache Pig开源,2008年晚些时候,Apache Pig首次发布。
Apache Pig简介
Pig是为了简化编写复杂的Java代码来执行MapReduce作业的负担而创建的。早期的Hadoop开发人员必须编写复杂的Java代码才能执行数据分析。 Apache Pig提供了一种称为Pig Latin的高级语言,可帮助Hadoop开发人员编写数据分析程序。通过使用Pig Latin语言提供的各种运算符,程序员可以开发自己的函数来读取,写入和处理数据。
为了使用Apache Pig执行分析,程序员必须使用Pig Latin语言编写脚本来处理存储在Hadoop分布式文件系统中的数据。在内部,所有这些脚本都转换为Map和Reduce任务。在Pig中存在一个称为Pig Engine的组件,其中Pig Latin脚本作为输入,并将这些脚本转换为Map-Reduce作业。
Apache Pig 的必要性
对于所有那些通常不太擅长Java的程序员来说,为了处理Hadoop,尤其是当他们需要执行任何MapReduce任务时,必须付出很大努力。 Apache Pig是所有这些程序员的有用工具。
不需要开发复杂的Java代码来执行MapReduce任务。通过简单地编写Pig Latin脚本,程序员现在可以轻松执行MapReduce任务,而无需使用Java编写复杂代码。
Apache Pig缩短了代码的长度。例如,要执行操作,我们需要用Java编写200行代码,只需在Apache Pig中输入少于10行的代码即可轻松执行。因此,使用Apache Pig最终可以缩短近16倍的开发时间。
如果开发人员具有SQL语言知识,那么学习Pig Latin语言非常容易,因为它与SQL语言相似。
Apache Pig提供了许多内置运算符来支持数据操作,如filter,join,order等。此外,Pig还提供了不存在于MapReduce中的嵌套数据类型,如元组,bags和映射。
Apache Pig的特点
Apache Pig具有以下独特功能:
丰富的操作符集:Pig由一组丰富的操作符集合组成,以执行诸如join,filter,order等操作。
易于编程:Pig Latin与SQL类似,因此开发人员编写Pig脚本变得非常容易。如果您有SQL语言的知识,那么学习Pig Latin非常容易,因为它与SQL语言相似。
优化:Apache Pig中的任务执行由任务本身自动优化,因此程序员只需关注语言的语义。
可扩展性:通过使用现有的运算符,用户可以轻松开发自己的函数来读取,处理和写入数据。
用户定义函数(UDF's):借助Pig提供的创建UDF的工具的帮助,我们可以很容易地在多种编程语言(如Java)上创建用户定义函数,并将它们调用或嵌入到Pig脚本中。
所有类型的数据处理:分析所有类型的数据(即结构化和非结构化)都由Apache Pig提供,结果存储在HDFS中。