Apache Pig - 执行

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

Apache Pig执行模式

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

本地模式

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

MapReduce模式

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

Apache Pig执行机制

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

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

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

  • 嵌入模式(UDF) :  Apache Pig提供了在Java等编程语言中定义我们自己的函数( U ser D efined F unctions)并在其中使用它们的功能.我们的脚本.

调用Grunt Shell

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

本地模式MapReduce模式

命令&减号;

$ ./pig -x local

命令与减号;

$ ./pig -x mapreduce

输出 :

本地模式输出

输出 :

MapReduce模式输出

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

grunt>

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

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

 grunt> customers = LOAD'consients.txt'使用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);

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

本地模式MapReduce模式
$ pig -x local Sample_script.pig $ pig -x mapreduce Sample_script.pig

注意 : 我们将在后续章节中详细讨论如何在 Bach模式嵌入模式中运行Pig脚本.