[ 
https://issues.apache.org/jira/browse/OOZIE-3159?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16325151#comment-16325151
 ] 

Attila Sasvari commented on OOZIE-3159:
---------------------------------------

I tested with pseudo Hadoop {{2.6.0}} that setting 
{{oozie.action.mapreduce.needed.for.spark}} to {{true}} in {{oozie-site.xml}} 
and submitting spark example workflow 
- with {{master}} set to {{local\[*]}} succeeds
- with {{master}} set to {{yarn}}. Executor job fails
{code}
Exception in thread "main" java.lang.NoClassDefFoundError: 
org/apache/spark/Logging
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
        at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at 
org.apache.spark.deploy.yarn.ExecutorLauncher$.main(ApplicationMaster.scala:674)
        at 
org.apache.spark.deploy.yarn.ExecutorLauncher.main(ApplicationMaster.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.Logging
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 14 more
{code}

Looking at the {{launcher_container.sh}}  of the executor:
{code}
export 
CLASSPATH="$PWD:$PWD/__spark_conf__:$PWD/__spark__.jar:$HADOOP_CONF_DIR:$HADOOP_COMMON_HOME/share/hadoop/common/*:$HADOOP_COMMON_HOME/share/hadoop/common/lib/*:$HADOOP_HDFS_HOME/share/hadoop/hdfs/*:$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*:$HADOOP_YARN_
HOME/share/hadoop/yarn/*:$HADOOP_YARN_HOME/share/hadoop/yarn/lib/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOM
E/share/hadoop/mapreduce/lib/*"
{code}

files in the container directory of the executor:
{code}
__spark__.jar -> 
/tmp/hadoop-asasvari/nm-local-dir/usercache/asasvari/filecache/11/spark-yarn_2.10-1.6.1.jar
__spark_conf__ -> 
/tmp/hadoop-asasvari/nm-local-dir/usercache/asasvari/filecache/10/__spark_conf__2056190651119303721.zip
{code}
As you see there are not too many file and {{spark-yarn_2.10-1.6.1.jar}} does 
not contain  {{org.apache.spark.Logging}} (it is included in 
{{spark-core_2.10-1.6.1.jar}} but that jar is not localized in the executor 
container's dir).
In {{spark_conf}} I can see {{spark_conf__.properties}} where a lot of 
properties are set, but some of them might not take any effect (runtime 
properties?).  [~gezapeti] can this be related to OOZIE-3112? I was unable to 
add extra dependencies or set classpath (tried "spark.executor.extraClassPath" 
and also "spark.executor.extraLibraryPath".

> Spark Action fails because of absence of hadoop mapreduce jar(s)
> ----------------------------------------------------------------
>
>                 Key: OOZIE-3159
>                 URL: https://issues.apache.org/jira/browse/OOZIE-3159
>             Project: Oozie
>          Issue Type: Bug
>            Reporter: Satish Subhashrao Saley
>            Priority: Blocker
>             Fix For: 5.0.0b1
>
>
> OOZIE-2869 removed map reduce dependencies from getting added to Spark 
> action. Spark action uses 
> org.apache.hadoop.filecache.DistributedCache. It is not available anymore in 
> Spack action's classpath, causing it to fail.
> {code}
> java.lang.reflect.InvocationTargetException
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:498)
>       at 
> org.apache.oozie.action.hadoop.LauncherAM.runActionMain(LauncherAM.java:412)
>       at 
> org.apache.oozie.action.hadoop.LauncherAM.access$300(LauncherAM.java:56)
>       at org.apache.oozie.action.hadoop.LauncherAM$2.run(LauncherAM.java:225)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:422)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
>       at org.apache.oozie.action.hadoop.LauncherAM.run(LauncherAM.java:219)
>       at org.apache.oozie.action.hadoop.LauncherAM$1.run(LauncherAM.java:155)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:422)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
>       at org.apache.oozie.action.hadoop.LauncherAM.main(LauncherAM.java:142)
> Caused by: java.lang.NoClassDefFoundError: 
> org/apache/hadoop/filecache/DistributedCache
>       at 
> org.apache.oozie.action.hadoop.SparkArgsExtractor.extract(SparkArgsExtractor.java:309)
>       at org.apache.oozie.action.hadoop.SparkMain.run(SparkMain.java:74)
>       at 
> org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:101)
>       at org.apache.oozie.action.hadoop.SparkMain.main(SparkMain.java:60)
>       ... 16 more
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.hadoop.filecache.DistributedCache
>       at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>       ... 20 more
> Failing Oozie Launcher, org/apache/hadoop/filecache/DistributedCache
> java.lang.NoClassDefFoundError: org/apache/hadoop/filecache/DistributedCache
>       at 
> org.apache.oozie.action.hadoop.SparkArgsExtractor.extract(SparkArgsExtractor.java:309)
>       at org.apache.oozie.action.hadoop.SparkMain.run(SparkMain.java:74)
>       at 
> org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:101)
>       at org.apache.oozie.action.hadoop.SparkMain.main(SparkMain.java:60)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:498)
>       at 
> org.apache.oozie.action.hadoop.LauncherAM.runActionMain(LauncherAM.java:412)
>       at 
> org.apache.oozie.action.hadoop.LauncherAM.access$300(LauncherAM.java:56)
>       at org.apache.oozie.action.hadoop.LauncherAM$2.run(LauncherAM.java:225)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:422)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
>       at org.apache.oozie.action.hadoop.LauncherAM.run(LauncherAM.java:219)
>       at org.apache.oozie.action.hadoop.LauncherAM$1.run(LauncherAM.java:155)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:422)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
>       at org.apache.oozie.action.hadoop.LauncherAM.main(LauncherAM.java:142)
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.hadoop.filecache.DistributedCache
>       at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>       ... 20 more
> Oozie Launcher, uploading action data to HDFS sequence file: 
> hdfs://localhost:8020/user/saley/oozie-sale/0000009-180112124633268-oozie-sale-W/spark-node--spark/action-data.seq
> {code}
> I enable adding map reduce jars by setting 
> {{oozie.launcher.oozie.action.mapreduce.needed.for}} to {{true}}. The 
> launcher job was able to kick the child job. But child job failed with 
> {code}
> 2018-01-12 15:00:13,301 [Driver] ERROR 
> org.apache.spark.deploy.yarn.ApplicationMaster  - User class threw exception: 
> java.lang.SecurityException: class "javax.servlet.FilterRegistration"'s 
> signer information does not match signer information of other classes in the 
> same package
> java.lang.SecurityException: class "javax.servlet.FilterRegistration"'s 
> signer information does not match signer information of other classes in the 
> same package
>       at java.lang.ClassLoader.checkCerts(ClassLoader.java:898)
>       at java.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
>       at java.lang.ClassLoader.defineClass(ClassLoader.java:761)
>       at 
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
>       at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
>       at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
>       at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
>       at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>       at 
> org.spark-project.jetty.servlet.ServletContextHandler.<init>(ServletContextHandler.java:136)
>       at 
> org.spark-project.jetty.servlet.ServletContextHandler.<init>(ServletContextHandler.java:129)
>       at 
> org.spark-project.jetty.servlet.ServletContextHandler.<init>(ServletContextHandler.java:98)
>       at 
> org.apache.spark.ui.JettyUtils$.createServletHandler(JettyUtils.scala:126)
>       at 
> org.apache.spark.ui.JettyUtils$.createServletHandler(JettyUtils.scala:113)
>       at org.apache.spark.ui.WebUI.attachPage(WebUI.scala:78)
>       at org.apache.spark.ui.WebUI$$anonfun$attachTab$1.apply(WebUI.scala:62)
>       at org.apache.spark.ui.WebUI$$anonfun$attachTab$1.apply(WebUI.scala:62)
>       at 
> scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
>       at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
>       at org.apache.spark.ui.WebUI.attachTab(WebUI.scala:62)
>       at org.apache.spark.ui.SparkUI.initialize(SparkUI.scala:63)
>       at org.apache.spark.ui.SparkUI.<init>(SparkUI.scala:76)
>       at org.apache.spark.ui.SparkUI$.create(SparkUI.scala:195)
>       at org.apache.spark.ui.SparkUI$.createLiveUI(SparkUI.scala:146)
>       at org.apache.spark.SparkContext.<init>(SparkContext.scala:473)
>       at 
> org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:59)
>       at org.apache.oozie.example.SparkFileCopy.main(SparkFileCopy.java:35)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:498)
>       at 
> org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:542)
> 2018-01-12 15:00:13,303 [Driver] INFO  
> org.apache.spark.deploy.yarn.ApplicationMaster  - Final app status: FAILED, 
> exitCode: 15, (reason: User class threw exception: 
> java.lang.SecurityException: class "javax.servlet.FilterRegistration"'s 
> signer information does not match signer information of other classes in the 
> same package)
> {code}
> I looked around this exception, it is due to servlet-api-2.5.jar which got 
> pulled in by hadoop-common in the spark sharelib. We need to revisit the 
> reason for adding hadoop-common as dependency. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to