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.
>
>
>
>

Reply via email to