Hadoop Apache Pig Execution Types
Pig has two execution types or run modes, local and hadoop (currently called mapreduce)
- Local mode
- Map Reduce mode.
1) Local mode
In Local mode, pig runs in a single JVM and accesses the local file system.
This mode is suitable only for small data sets and typing out pig.
To run in local mode, set the option to local i.e
2) Map Reduce Mode
In Map Reduce mode, pig translates queries into map reduce jobs and runs them on a hadoop cluster and cluster may be pseudo or fully distributed cluster.
To use Map Reduce mode, we have to check the version of pig that is compatible with the versions of hadoop
Pig honors the HADOOP-HOME environmental variable for finding which Hadoop client to run and pig will also use a bundled copy of the hadoop libraries.
For pig, we have to set two properties in pig properties file which is pig’s cong directory.
i.e for psedudo distributed setup, example is
mapped. job. tracker=local host:8021
Once you have configured pig to connect to Hadoop cluster, you can launch pig, setting the -x option to map reduce or a map reduce mode is default i.e. % pig grunt>
Running Pig Programs
This section shows you how to run Pig in local mode, using the Grunt shell, a Pig script, and an embedded program.
There are three ways of executing pig programs which work in both local and map reduce mode.
- Script-pig can run a script file that contains pig commands
- Grunt – Is an interactive shell for running pig commands
- Embedded – you can run pig programs from Java using the pig server class, much like you can use JDBC to run SQL Programs from JAVA.
Modes of Execution in Pig
You can execute Pig Latin statements.
- Grunt shell or command line
- Local mode or Map Reduce mode
- Either Interactively or in a batch
Local mode and MR or HDFS Mode
In the local mode execution of pig, we expect all the inputs from the local environment (input from local mode and produce the output from the local mode but should not be from HDFS)
Syntax:- Pig-x local.
In MR mode execution of pig, we expect all input files from HDFS path and also produce the output on top of hdfs only
The grunt mode can also be called as interactive mode. Grunt is pig’s interactive shell. It is started when no file is specified for pig to run.
Grunt shell is an interactive base shell where you will expect the o/p then and there only, irrespective of the input.
Script mode Execution:
In script mode, pig runs the commands specified in a script file.
Here, we will describe all transformations in a single file which ends with pig. All the commands will be executed one after another which are there in .pig file.
|Pig- x local abc.pig||Pig abc.pig|
In this mode, we will do the pig customization code if at all sane analyzer functionality is not archived through the user defined transformations.
Then we can write Java code to archive the same and reference the same Java code (.jar file) in our pig script by making use of the code.
Note:- Register key word should be the first statement within our pig script code.