These notes are for Pig 0.7.0 release.

Highlights
==========

- Redesign the LoadFunc and StoreFunc interface for future growth of Pig.
  PIG-966
- Switch Pig local mode to use hadoop local mode. PIG-1053
- Provide more information for hadoop job launched, such as job id and number of spills.
  PIG-1215, PIG-1102
- More aggressive use of hadoop distributed cache. PIG-872, PIG-1218 
- Over 100 bug fixes and improvements.

Incompatibilities
=================

Please check http://wiki.apache.org/pig/Pig070IncompatibleChanges

System Requirements
===================

1. Java 1.6.x or newer, preferably from Sun. Set JAVA_HOME to the root of your
Java installation
2. Ant build tool:  http://ant.apache.org - to build source only
3. Cygwin: http://www.cygwin.com/ - to run under Windows 
4. This release is compatible with Hadoop 0.20.x releases

Trying the Release
==================

1. Download pig-0.7.0.tar.gz
2. Unpack the file: tar -xzvf pig-0.7.0.tar.gz
3. Move into the installation directory: cd pig-0.7.0
4. To run pig without Hadoop cluster, execute the command below. This will
take you into an interactive shell called grunt that allows you to navigate
the local file system and execute Pig commands against the local files
    bin/pig -x local
5. To run on your Hadoop cluster, you need to set PIG_CLASSPATH environment
variable to point to the directory with your hadoop-site.xml file and then run
pig. The commands below will take you into an interactive shell called grunt
that allows you to navigate Hadoop DFS and execute Pig commands against it
export PIG_CLASSPATH=/hadoop/conf
    bin/pig
6. To build your own version of pig.jar run
    ant
7. To run unit tests run
    ant test 
8. To build jar file with available user defined functions run commands below.
This currently only works with Java 1.6.x.
    cd contrib/piggybank/java
    ant
9. To build the tutorial:
    cd tutorial
    ant
10. To run tutorial follow instructions in http://wiki.apache.org/pig/PigTutorial

Relevant Documentation
======================

http://hadoop.apache.org/pig/docs/r0.7.0/
http://wiki.apache.org/pig/
http://wiki.apache.org/pig/Pig070IncompatibleChanges
