Hadoop预习内容Pig


YL     2021-11-22     557

Hadoop预习内容Pig

目录

Pig是什么

Apache Pig是MapReduce的一个抽象。它是一个工具/平台,用于分析较大的数据集,并将它们表示为数据流。Pig通常与 Hadoop 一起使用;我们可以使用Apache Pig在Hadoop中执行所有的数据处理操作。

Pig是一种数据流语言和运行环境,常用于检索和分析数据量较大的数据集。Pig包括两部分:一是用于描述数据流的语言,称为Pig Latin;二是用于运行Pig Latin程序的执行环境。

为什么我们需要Apache Pig

Pig更轻量级,执行效率更快,适用于实时分析

不太擅长Java的程序员通常习惯于使用Hadoop,特别是在执行任一MapReduce作业时。Apache Pig是所有这样的程序员的福音。

使用 Pig Latin ,程序员可以轻松地执行MapReduce作业,而无需在Java中键入复杂的代码。

Apache Pig使用多查询方法,从而减少代码长度。例如,需要在Java中输入200行代码(LoC)的操作在Apache Pig中输入少到10个LoC就能轻松完成。最终,Apache Pig将开发时间减少了近16倍。

Pig的特点

丰富的运算符集 - 它提供了许多运算符来执行诸如join,sort,filer等操作。

易于编程 - Pig Latin与SQL类似,如果你善于使用SQL,则很容易编写Pig脚本。

优化机会 - Apache Pig中的任务自动优化其执行,因此程序员只需要关注语言的语义。

可扩展性 - 使用现有的操作符,用户可以开发自己的功能来读取、处理和写入数据。

用户定义函数 - Pig提供了在其他编程语言(如Java)中创建用户定义函数的功能,并且可以调用或嵌入到Pig脚本中。

处理各种数据 - Apache Pig分析各种数据,无论是结构化还是非结构化,它将结果存储在HDFS中。

Pig与MapReduce

Apache Pig是一种数据流语言。MapReduce是一种数据处理模式。

它是一种高级语言。MapReduce是低级和刚性的。

在Apache Pig中执行Join操作非常简单。在MapReduce中执行数据集之间的Join操作是非常困难的。

任何具备SQL基础知识的新手程序员都可以方便地使用Apache Pig工作。向Java公开是必须使用MapReduce。

Apache Pig使用多查询方法,从而在很大程度上减少代码的长度。MapReduce将需要几乎20倍的行数来执行相同的任务。

没有必要编译。执行时,每个Apache Pig操作符都在内部转换为MapReduce作业。MapReduce作业具有很长的编译过程。

Pig VS SQL

Pig Latin是一种程序语言。SQL是一种声明式语言。

在Apache Pig中,模式是可选的。我们可以存储数据而无需设计模式(值存储为$ 01,$ 02等)模式在SQL中是必需的。

Apache Pig中的数据模型是嵌套关系。SQL 中使用的数据模型是平面关系。

Apache Pig为查询优化提供有限的机会。在SQL中有更多的机会进行查询优化。

除了上面的区别,Apache Pig Latin:允许在pipeline(流水线)中拆分。

允许开发人员在pipeline中的任何位置存储数据。

声明执行计划。

提供运算符来执行ETL(Extract提取,Transform转换和Load加载)功能。

pig和数据库的区别

Pig Latin是面向数据流的编程方式,而SQL是一种描述型编程语言。我们以前学习SQL的时候经常听到过这样一句话:用SQL,你只需要告诉它你需要什么,具体怎么做交给SQL就行了。而Pig Latin是需要你一步一步根据数据流的处理方式来编程的,也就是说你要设计数据流的每一个步骤,有点类似SQL的查询规划器。