Esteban Donato created ZEPPELIN-1788:
----------------------------------------
Summary: don't modify CLASSPATH environment variable
Key: ZEPPELIN-1788
URL: https://issues.apache.org/jira/browse/ZEPPELIN-1788
Project: Zeppelin
Issue Type: Bug
Affects Versions: 0.6.1
Reporter: Esteban Donato
scripts install-interpreter.sh, interpreter.sh, zeppelin-daemon.sh and
zeppelin.sh modify the environment variable CLASSPATH appending either
ZEPPELIN_CLASSPATH or ZEPPELIN_INTP_CLASSPATH value to it. Since
zeppelin-deamon.sh launches zeppelin server which it then launches the
different interpreters via interpreter.sh, if CLASSPATH is set as a exported
variable, the CLASSPATH value modified by zeppelin-daemon.sh (which appends
the zeppelin server dependencies) is then propagated to the interpreter.sh
execution which result in having the zeppelin server dependencies appended to
the interpreters classpath. This cause not just to have unnecessary libraries
in the interpreters classpath but also compatibility issues in the
spark-interpreter since spark is compiled for Scala 2.10 while zeppelin server
includes Scala 2.11 as one of its dependencies and both end up being part of
the spark interpreter classpath.
my proposal: use CLASSPATH variable in the scripts as a read-only variable to
append libraries to the different classpaths and just modify
ZEPPELIN_CLASSPATH or ZEPPELIN_INTP_CLASSPATH on case by case to append just
the necessarily libraries to the different processes.
If this proposal makes sense I can provide a PR with this change.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)