I have a similar issue with SPARK-1767. There are basically three ways to resolve the issue:
1. Use reflection to access classes newer than 0.21 (or whatever the oldest version of Hadoop is that Spark supports) 2. Add a build variant (in Maven this would be a profile) that deals with this. 3. Auto-detect which classes are available and use those. #1 is the easiest for end-users, but it can lead to some ugly code. #2 makes the code look nicer, but requires some effort on the part of people building spark. This can also lead to headaches for IDEs, if people don't remember to select the new profile. (For example, in IntelliJ, you can't see any of the yarn classes when you import the project from Maven without the YARN profile selected.) #3 is something that... I don't know how to do in sbt or Maven. I've been told that an antrun task might work here, but it seems like it could get really tricky. Overall, I'd lean more towards #2 here. best, Colin On Tue, Jul 22, 2014 at 12:47 AM, innowireless TaeYun Kim < taeyun....@innowireless.co.kr> wrote: > (I'm resending this mail since it seems that it was not sent. Sorry if this > was already sent.) > > Hi, > > > > A couple of month ago, I made a pull request to fix > https://issues.apache.org/jira/browse/SPARK-1825. > > My pull request is here: https://github.com/apache/spark/pull/899 > > > > But that pull request has problems: > > l It is Hadoop 2.4.0+ only. It won't compile on the versions below it. > > l The related Hadoop API is marked as '@Unstable'. > > > > Here is an idea to remedy the problems: a new Spark configuration variable. > > Maybe it can be named as "spark.yarn.submit.crossplatform". > > If it is set to "true"(default is false), the related Spark code can use > the > hard-coded strings that is the same as the Hadoop API provides, thus > avoiding compile error on the Hadoop versions below 2.4.0. > > > > Can someone implement this feature, if this idea is acceptable? > > Currently my knowledge on Spark source code and Scala is limited to > implement it myself. > > To the right person, the modification should be trivial. > > You can refer to the source code changes of my pull request. > > > > Thanks. > > > >