Apache Pig执行模式和机制

1. Apache Pig执行简介

当开发人员创建Pig脚本时,首先将其发送到本地文件系统中 ,当开发者提交Pig Script时,它会与Pig Latin Compiler进行交互。 此外,编译器会分解任务并运行一系列MR作业。 同时,Pig编译器从HDFS中检索数据。 然后,运行MR作业输出文件再次进入HDFS。

2. Apache Pig执行模式

Apache Pig执行中有两种模式,如本地模式和HDFS模式。 我们来详细讨论一下:

本地模式

在这种模式下,所有文件都安装并运行在本地主机和本地文件系统上。 通常使用这种模式进行测试。

在这种模式下,Pig在单个JVM上执行并访问文件系统。特别是对于处理小数据集,本地模式更好。本地模式下,并行Map的执行是不可能的。

用户可以提供-x本地进入Pig本地执行模式. Pig总是在加载数据时查找本地文件系统路径。

MapReduce模式

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

在这种模式下,用户可以拥有适当的Hadoop集群设置和安装。默认情况下,Apache Pig以MR模式安装。Pig将查询转换为MapReduce作业并在Hadoop集群上运行。这种作为MapReduce的模式运行在分布式集群上。

3.Apache Pig 执行机制

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

交互模式(Grunt shell)

通过使用Grunt shell,我们可以以交互模式运行Apache Pig。 通过使用Dump操作符,我们可以在此Shell中输入Pig Latin语句并获取输出。

批处理模式(脚本)

通过使用.pig扩展名将Pig Latin脚本写入单个文件,我们可以以批处理模式运行Apache Pig。

嵌入式模式(UDF)(Embeded Mode)

通过在脚本中使用用户定义函数,Pig提供了使用Java等编程语言定义自己的函数。

4.调用Grunt Shell

通过使用-x选项,我们可以调用所需模式下的Grunt shell(local / MapReduce)。

本地模式

1. $ ./pig –x local

MapReduce模式

1. $ ./pig -x mapreduce

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

我们可以在调用Grunt shell之后直接输入Pig Latin语句来执行Pig脚本。

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

以批处理模式执行Apache Pig

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

1.Sample_script.pig
2.student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING
3.PigStorage(',') as (id:int,name:chararray,city:chararray);
4.Dump student;

本地模式

pig -x local Sample_script.pig

MapReduce模式

1.
$ pig -x MapReduce Sample_script.pig

Apache Pig执行模式和机制

发表评论

邮箱地址不会被公开。 必填项已用*标注

九 × 一 =

滚动到顶部