Skip to content

Commit

Permalink
PIG-4923: Drop Hadoop 1.x support in Pig 0.17 (szita via rohini)
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.apache.org/repos/asf/pig/trunk@1777738 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
r0hini committed Jan 7, 2017
1 parent 5b34cca commit 6c6d53c
Show file tree
Hide file tree
Showing 67 changed files with 538 additions and 1,843 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ contrib/piggybank/java/piggybank.jar
conf/log4j.properties
lib/jdiff/pig_*SNAPSHOT.xml
test/resources/*.jar
!ivy/ant-contrib-1.0b3.jar
8 changes: 2 additions & 6 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,14 @@

## Building Pig

To compile with Hadoop 1.x

ant clean jar piggybank

To compile with Hadoop 2.x

ant clean jar piggybank -Dhadoopversion=23
ant clean jar piggybank

Building and running the tests needed before submitting a patch.
For more details https://cwiki.apache.org/confluence/display/PIG/HowToContribute

ANT_OPTS='-Djavac.args="-Xlint -Xmaxwarns 1000" -Dhadoopversion=23'
ANT_OPTS='-Djavac.args="-Xlint -Xmaxwarns 1000"'
ant ${ANT_OPTS} clean piggybank jar compile-test test-commit
cd contrib/piggybank/java && ant ${ANT_OPTS} test

Expand Down
2 changes: 2 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ Trunk (unreleased changes)

INCOMPATIBLE CHANGES

PIG-4923: Drop Hadoop 1.x support in Pig 0.17 (szita via rohini)

PIG-5067: Revisit union on numeric type and chararray to bytearray (knoguchi)

IMPROVEMENTS
Expand Down
19 changes: 8 additions & 11 deletions bin/pig
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,8 @@ HADOOP_CORE_JAR=`echo ${HADOOP_HOME}/hadoop-core*.jar`
if [ -z "$HADOOP_CORE_JAR" ]; then
HADOOP_VERSION=2
else
HADOOP_VERSION=1
echo "Pig requires Hadoop 2 to be present in HADOOP_HOME (currently: $HADOOP_HOME). Please install Hadoop 2.x"
exit 1
fi

# if using HBase, likely want to include HBase jars and config
Expand Down Expand Up @@ -377,11 +378,7 @@ if [ -n "$HADOOP_BIN" ]; then
if [ -n "$PIG_JAR" ]; then
CLASSPATH=${CLASSPATH}:$PIG_JAR
else
if [ "$HADOOP_VERSION" == "1" ]; then
echo "Cannot locate pig-core-h${HADOOP_VERSION}.jar. do 'ant jar', and try again"
else
echo "Cannot locate pig-core-h${HADOOP_VERSION}.jar. do 'ant -Dhadoopversion=23 jar', and try again"
fi
echo "Cannot locate pig-core-h${HADOOP_VERSION}.jar. do 'ant jar', and try again"
exit 1
fi

Expand All @@ -402,8 +399,8 @@ if [ -n "$HADOOP_BIN" ]; then
exec "$HADOOP_BIN" jar "$PIG_JAR" "${remaining[@]}"
fi
else
# use hadoop-core.jar to run local mode
PIG_JAR=`echo $PIG_HOME/pig*-core-h1.jar`
# use bundled hadoop to run local mode
PIG_JAR=`echo $PIG_HOME/pig*-core-h2.jar`

if [ -n "$PIG_JAR" ]; then
CLASSPATH="${CLASSPATH}:$PIG_JAR"
Expand All @@ -412,12 +409,12 @@ else
exit 1
fi

for f in $PIG_HOME/lib/h1/*.jar; do
for f in $PIG_HOME/lib/h2/*.jar; do
CLASSPATH=${CLASSPATH}:$f;
done

# Add bundled hadoop-core.jar
for f in $PIG_HOME/lib/hadoop1-runtime/*.jar; do
# Add bundled hadoop jars
for f in $PIG_HOME/lib/hadoop2-runtime/*.jar; do
CLASSPATH=${CLASSPATH}:$f;
done

Expand Down
27 changes: 12 additions & 15 deletions bin/pig.py
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@
if len(hadoopCoreJars) == 0:
hadoopVersion = 2
else:
hadoopVersion = 1
sys.exit("Cannot locate Hadoop 2 binaries, please install Hadoop 2.x and try again.")

if hadoopBin != "":
if debug == True:
Expand All @@ -361,10 +361,7 @@
if len(pigJars) == 1:
pigJar = pigJars[0]
else:
if hadoopVersion == 1:
sys.exit("Cannot locate pig-core-h1.jar do 'ant jar', and try again")
else:
sys.exit("Cannot locate pig-core-h2.jar do 'ant -Dhadoopversion=23 jar', and try again")
sys.exit("Cannot locate pig-core-h2.jar do 'ant jar', and try again")

pigLibJars = glob.glob(os.path.join(os.environ['PIG_HOME']+"/lib", "h" + str(hadoopVersion), "*.jar"))
for jar in pigLibJars:
Expand Down Expand Up @@ -393,37 +390,37 @@
else:
# fall back to use fat pig.jar
if debug == True:
print "Cannot find local hadoop installation, using bundled hadoop 1"
if os.path.exists(os.path.join(os.environ['PIG_HOME'], "pig-core-h1.jar")):
pigJar = os.path.join(os.environ['PIG_HOME'], "pig-core-h1.jar")
print "Cannot find local hadoop installation, using bundled hadoop 2"

if os.path.exists(os.path.join(os.environ['PIG_HOME'], "pig-core-h2.jar")):
pigJar = os.path.join(os.environ['PIG_HOME'], "pig-core-h2.jar")

else:
pigJars = glob.glob(os.path.join(os.environ['PIG_HOME'], "pig-*-core-h1.jar"))
pigJars = glob.glob(os.path.join(os.environ['PIG_HOME'], "pig-*-core-h2.jar"))

if len(pigJars) == 1:
pigJar = pigJars[0]

elif len(pigJars) > 1:
print "Ambiguity with pig jars found the following jars"
print pigJars
sys.exit("Please remove irrelavant jars from %s" % os.path.join(os.environ['PIG_HOME'], "pig-core-h1.jar"))
sys.exit("Please remove irrelavant jars from %s" % os.path.join(os.environ['PIG_HOME'], "pig-core-h2.jar"))
else:
sys.exit("Cannot locate pig-core-h1.jar. do 'ant jar' and try again")
sys.exit("Cannot locate pig-core-h2.jar. do 'ant jar' and try again")

pigLibJars = glob.glob(os.path.join(os.environ['PIG_HOME']+"/lib", "h1", "*.jar"))
pigLibJars = glob.glob(os.path.join(os.environ['PIG_HOME']+"/lib", "h2", "*.jar"))
for jar in pigLibJars:
classpath += os.pathsep + jar

pigLibJars = glob.glob(os.path.join(os.environ['PIG_HOME']+"/lib", "hadoop1-runtime", "*.jar"))
pigLibJars = glob.glob(os.path.join(os.environ['PIG_HOME']+"/lib", "hadoop2-runtime", "*.jar"))
for jar in pigLibJars:
classpath += os.pathsep + jar

classpath += os.pathsep + pigJar
pigClass = "org.apache.pig.Main"
if debug == True:
print "dry runXXX:"
print "%s %s %s -classpath %s %s %s" % (java, javaHeapMax, pigOpts, classpath, pigClass, ' '.join(restArgs))
print "%s %s %s -classpath %s %s %s" % (java, javaHeapMax, pigOpts, classpath, pigClass, ' '.join(restArgs))
else:
cmdLine = java + ' ' + javaHeapMax + ' ' + pigOpts
cmdLine += ' ' + '-classpath ' + classpath + ' ' + pigClass + ' ' + ' '.join(restArgs)
Expand Down
Loading

0 comments on commit 6c6d53c

Please sign in to comment.