I am having trouble using zeppelin in a spark cluster that has spark node
authentication turned on (e.g. with spark.authenticate=true,
spark.authenticate.secret=...)

Notebook code that calls built-in spark functions (or other things on
executor classpath) work fine, but functions defined in the notebook
(anonymous or named) throw ClassNotFoundExceptions when called from an
executor.

For example, this code works:

val rdd = sc.textFile("hdfs://my-text-file")
rdd.take(1).foreach(println)

rdd.saveAsTextFile("hdfs:///my-other-text-file")

but code like this...

rdd.filter(_.contains("my data"))

fails with

Caused by: java.lang.ClassNotFoundException:
$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$anonfun$1
at
org.apache.spark.repl.ExecutorClassLoader.findClass(ExecutorClassLoader.scala:84)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
        ...


I get the same kind of error if the filter function is defined as a named
function in the notebook, or as a member of singleton object defined in the
notebook.

When I look at the executor's log output, I see this error:

16/06/27 21:36:23 ERROR repl.ExecutorClassLoader: Failed to check existence
of class $line31.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$anonfun$1
on REPL class server at https://172.30.54.30:34980
java.lang.NullPointerException
at
org.apache.spark.repl.ExecutorClassLoader.getClassFileInputStreamFromHttpServer(ExecutorClassLoader.scala:113)
at
org.apache.spark.repl.ExecutorClassLoader.findClassLocally(ExecutorClassLoader.scala:146)
at
org.apache.spark.repl.ExecutorClassLoader.findClass(ExecutorClassLoader.scala:76)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)

        ...


If I disable spark authentication, everything works as expected. I am
running zeppelin 0.5.6 on spark 1.6.1 with yarn.

Has anyone been able to get zeppelin working with spark authentication?

Reply via email to