Ryan Williams created SPARK-5115:
------------------------------------

             Summary: Intellij fails to find hadoop classes in Spark "yarn" 
modules
                 Key: SPARK-5115
                 URL: https://issues.apache.org/jira/browse/SPARK-5115
             Project: Spark
          Issue Type: Improvement
          Components: YARN
    Affects Versions: 1.2.0
            Reporter: Ryan Williams


Intellij's parsing of Spark's POMs works like a charm for the most part, 
however it fails to resolve the hadoop and yarn dependencies in the Spark 
{{yarn}} and {{network/yarn}} modules.

Imports and later references to imported classes show up as errors, e.g.

!http://f.cl.ly/items/0g3w3s0t45402z30011l/Screen%20Shot%202015-01-06%20at%206.42.52%20PM.png!

Opening the module settings, we see that IntelliJ is looking for version 
{{1.0.4}} of [each yarn JAR that the Spark YARN module depends 
on|https://github.com/apache/spark/blob/bb38ebb1abd26b57525d7d29703fd449e40cd6de/yarn/pom.xml#L41-L56],
 and failing to find them:


!http://f.cl.ly/items/2d320l2h2o2N1m0t2X3b/yarn.png!


This, in turn, is due to the parent POM [defaulting {{hadoop.version}} to 
{{1.0.4}}|https://github.com/apache/spark/blob/bb38ebb1abd26b57525d7d29703fd449e40cd6de/pom.xml#L122].

AFAIK, having the default-hadoop-version be {{1.0.4}} is not that important and 
may just be an accident of history; people typically select a Maven profile 
when building Spark that matches the version of Hadoop that they intend to run 
with.

This suggests one possible fix: bump the default Hadoop version to >= 2. I've 
tried this locally and it resolves Intellij's difficulties with the "yarn" and 
"network/yarn" modules; [PR #3917|https://github.com/apache/spark/pull/3917] 
does this.

Another fix would be to declare a {{hadoop.version}} property in 
{{yarn/pom.xml}} and add that to the YARN dependencies in that file; [PR 
#3918|https://github.com/apache/spark/pull/3918] does that.

It is more obvious to me in the former case that the existing rules that govern 
what {{hadoop.version}} the YARN dependencies inherit will still apply.

For the latter, or potentially other ways to configure IntelliJ / Spark's POMs, 
someone with more Maven/IntelliJ fu may need to chime in.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to