Pig执行


在前一章中,我们解释了如何安装Apache Pig。在本章中,我们将讨论如何执行Apache Pig。

Apache Pig执行模式

您可以以两种模式运行Apache Pig,即 本地模式HDFS模式

本地模式

在此模式下,所有文件都将从本地主机和本地文件系统安装并运行。不需要Hadoop或HDFS。此模式通常用于测试目的。

MapReduce模式

MapReduce模式是我们使用Apache Pig加载或处理存在于Hadoop文件系统(HDFS)中的数据的地方。在这种模式下,无论何时我们执行Pig Latin语句来处理数据,都会在后端调用MapReduce作业,以对HDFS中存在的数据执行特定的操作。

Apache Pig执行机制

Apache Pig脚本可以通过三种方式执行,即交互模式,批处理模式和嵌入模式。

  • 交互模式 (Grunt shell) - 您可以使用Grunt shell以交互模式运行Apache Pig。在这个shell中,您可以输入Pig Latin语句并获取输出(使用Dump操作符)。

  • 批处理模式 (脚本) - 您可以在批处理模式下运行Apache Pig,方法是将Pig Latin脚本以 .pig 扩展名写入单个文件。

  • 嵌入模式 (UDF) -Apachepig提供了定义我们自己的函数(的规定 ü SER d efined ˚F unctions)的编程语言如Java,并在我们的脚本中使用它们。

调用Grunt Shell

您可以使用 -x 选项以所需的模式(local / MapReduce)调用Grunt shell,如下所示。

Local mode MapReduce mode
命令 - $ ./pig -x local 命令 - $ ./pig -x mapreduce
输出 本地模式输出 输出 MapReduce模式输出

这些命令中的任何一个都可以为您提供Grunt shell提示符,如下所示。

grunt>

您可以使用 'ctrl + d' 退出Grunt shell 。

调用Grunt shell之后,可以通过直接在其中输入Pig Latin语句来执行Pig脚本。

grunt> customers = LOAD 'customers.txt' USING PigStorage(',');

以批处理模式执行Apache Pig

您可以在文件中编写完整的Pig Latin脚本,并使用 -x命令 执行它。假设我们在一个名为 sample_script.pig 的文件中有一个Pig脚本,如下所示。

Sample_script.pig

student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING
   PigStorage(',') as (id:int,name:chararray,city:chararray);

Dump student;

现在,您可以在上面的文件中执行脚本,如下所示。

Local mode MapReduce mode
$ pig -x local Sample_script.pig $ pig -x mapreduce Sample_script.pig

- 我们将详细讨论如何 在后续章节中以 Bach模式嵌入模式 运行Pig脚本。