Pig 教程
-
Pig 教程
Apache Pig是MapReduce的抽象。它是一种工具/平台,用于分析将较大的数据集表示为数据流的数据。Pig通常与Hadoop一起使用;我们可以使用Pig来执行Hadoop中的所有数据操作操作。为了编写数据分析程序,Pig提供了一种称为Pig Latin的高级语言。该语言提供了各种运算符,程序员可以使用它们来开发自己的函数来读取,写入和处理数据。要使用Apache Pig分析数据,程序员需要使用Pig Latin语言编写脚本。所有这些脚本都在内部转换为Map和Reduce任务。Apache Pig具有称为Pig Engine的组件,该组件接受Pig Latin脚本作为输入并将这些脚本转换为MapReduce作业。 -
为什么我们需要Apache Pig?
不太擅长Java的程序员通常在使用Hadoop时会遇到困难,尤其是在执行任何MapReduce任务时。Apache Pig是所有此类程序员的福音。使用Pig Latin,程序员可以轻松执行MapReduce任务,而无需在Java中键入复杂的代码。Apache Pig使用多查询方法,从而减少了代码长度。例如,只需在Apache Pig中键入少于10个LoC即可轻松完成需要在Java中键入200行代码(LoC)的操作。最终,Apache Pig将开发时间减少了近16倍。Pig Latin是一种类似SQL的语言,当您熟悉SQL时很容易学习Apache Pig。Apache Pig提供了许多内置的运算符来支持数据操作,例如联接,过滤器,排序等。此外,它还提供了MapReduce中缺少的嵌套数据类型,例如元组,包和映射(maps)。 -
Pig 的功能
Apache Pig具有以下功能-- 丰富的运算符集 - 它提供许多运算符来执行诸如 join, sort, filer等操作。
- 易于编程 - Pig Latin与SQL相似,如果您擅长SQL,则很容易编写Pig脚本。
- 自动优化 - Apache Pig中的任务会自动优化其执行,因此程序员只需要专注于语言的语义。
- 可扩展性 – 使用现有的运算符,用户可以开发自己的函数来读取,处理和写入数据。
- UDF的 – Pig提供了使用其他编程语言(例如Java)创建用户定义函数并将其调用或嵌入Pig脚本的功能。
- 处理各种数据 - Apache Pig分析所有结构化和非结构化数据。它将结果存储在HDFS中。
-
Apache Pig 与 MapReduce
下面列出的是Apache Pig和MapReduce之间的主要区别。Pig MapReduce Apache Pig是一种数据流语言。 MapReduce是一种数据处理范例。 这是一种高级语言。 MapReduce是低级且严格的。 在Apache Pig中执行Join操作非常简单。 在MapReduce中,很难在数据集之间执行Join操作。 任何具有SQL基本知识的新手程序员都可以轻松地与Apache Pig一起工作。 使用MapReduce必须与Java接触。 Apache Pig使用多查询方法,从而在很大程度上减少了代码长度。 MapReduce将需要多近20倍的行数来执行同一任务。 无需编译。在执行时,每个Apache Pig运算符都会在内部转换为MapReduce作业。 MapReduce作业的编译过程很长。 -
Apache Pig 与 SQL
下面列出的是Apache Pig和SQL之间的主要区别。Pig SQL Pig Latin是一种程序语言。 SQL是一种声明性语言。 在Apache Pig中,模式是可选的。我们可以存储数据而无需设计架构(值存储为$01,$02等)。 模式在SQL中是必需的。 Apache Pig中的数据模型是嵌套关系型。 SQL中使用的数据模型是扁平关系。 Apache Pig为查询优化提供了有限的机会。 SQL中查询优化的机会更多。 除了上述差异外,Apache Pig Latin-- 允许在管道中拆分。
- 允许开发人员将数据存储在管道中的任何位置。
- 宣布执行计划。
- 提供操作员执行ETL(提取,转换和加载)功能。
-
Apache Pig 与 Hive
Apache Pig和Hive均用于创建MapReduce作业。在某些情况下,Hive以与Apache Pig相似的方式在HDFS上运行。在下表中,我们列出了一些使Apache Pig与Hive脱颖而出的重要方面。Pig Hive Apache Pig使用一种称为Pig Latin的语言。它最初是由Yahoo创建的。 Hive使用一种称为HiveQL的语言。它最初是在Facebook上创建的。 Pig Latin是一种数据流语言。 HiveQL是查询处理语言。 Pig Latin是一种过程语言,适合流水线范例。 HiveQL是一种声明性语言。 Apache Pig可以处理结构化,非结构化和半结构化数据。 Hive主要用于结构化数据。 -
Apache Pig的应用
数据科学家通常使用Apache Pig来执行涉及即时处理和快速原型制作的任务。使用Apache Pig-- 处理大量数据源,例如Web日志。
- 对搜索平台执行数据处理。
- 处理时间敏感的数据加载。
-
Apache Pig–历史
在2006年,Apache Pig是发展成为雅虎的一个研究项目,特别是建立和每个数据集执行MapReduce作业。在2007年,Apache Pig通过Apache孵化器开源。在2008年,Apache Pig的第一个版本出来。在2010,Apache Pig成为Apache顶级项目。 -
听众
本教程适用于所有希望在不使用Java键入复杂代码的情况下执行MapReduce操作的Hadoop专业人员。要充分利用本教程,您应该对Hadoop和HDFS命令的基础知识有很好的了解。如果您擅长SQL,那么肯定会有所帮助。