MapReduce applicationのHadoop 1.xから2.xへの移行については、互換性が保証されています。
packageが"org.apache.hadoop.mapred"のもののみ使用している場合は、そのまま使用できます。
"org.apache.hadoop.mapreduce"を使用している場合は、recompileが必要です。
recompileせずに実行すると、下記のエラーが発生します。
java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected
参考:
http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduce_Compatibility_Hadoop1_Hadoop2.html
補足:
Mavenを使っている場合は、pom.xmlに下記の修正が必要です。
[修正前]
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<scope>provided</scope>
</dependency>
[修正後]
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>2.7.2</version>
<scope>provided</scope>
</dependency>
※hadoop-commonは、org.apache.hadoop.conf, fs, io, util, securityのAPIを
使うのに必要
※hadoop-mapreduce-client-coreは、org.apache.hadoop.mapreduce, mapredの
APIを使うのに必要