📜  Apache Pig-执行

📅  最后修改于: 2020-12-02 05:30:22             🧑  作者: Mango


在上一章中,我们解释了如何安装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。在此外壳程序中,您可以输入Pig Latin语句并获取输出(使用Dump 运算符)。

  • 批处理模式(脚本)-您可以通过将Pig Pig拉丁脚本写入扩展名为.pig的单个文件中,以批处理模式运行Apache Pig。

  • 嵌入模式(UDF) -阿帕奇猪提供了定义我们自己的函数(U SER d efined˚Functions)在诸如Java编程语言,并在我们的脚本中使用它们的规定。

调用Grunt Shell

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

Local mode MapReduce mode

Command −

$ ./pig –x local

Command −

$ ./pig -x mapreduce

Output

Local Mode Output

Output

MapReduce Mode Output

这两个命令都会为您提供Grunt shell提示符,如下所示。

grunt>

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

调用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脚本。