在上一章中,我们解释了如何安装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 |
输出 : | 输出 : |
这些命令中的任何一个都会为您提供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脚本.