飞艇与 Spark2

Zeppelin with Spark2

我正在尝试配置 Zeppelin 以在 cloudera 中使用 Spark2 和 cloudera 版本 5.10.1

我收到错误 "org.apache.zeppelin.interpreter.InterpreterException:opt/cloudera/parcels/SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904/bin/spark2-submit/bin/spark-submit: Not a directory"

很明显,它将“/bin/spark-submit”附加到路径。我该如何纠正?

您应该将变量 SPARK_HOME(在您的 zeppelin 安装的文件 conf/zeppelin-env.sh 中)设置为您的 spark 安装的 基本目录 是“/opt/cloudera/parcels/SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904/”。如果(附加)问题是 "spark2-submit" 与 "spark-submit" 的名称,那么我将在 shell 上创建一个带有

的符号链接
cd /opt/cloudera/parcels/SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904/bin/
ln -s spark2-submit spark-submit

将 SPARK_HOME 设置为“/opt/cloudera/parcels/SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904/”可能还不够。在我的例子中,当我将 SPARK_HOME 设置为:

时,spark2 开始在飞艇中工作

SPARK_HOME=/opt/cloudera/parcels/SPARK2/lib/spark2

*SPARK2 是 link 那个较长的地块名称。

进一步完善我的答案。 @molotow 的解决方案在 zeppelin 中给了我这样的错误:

org.apache.zeppelin.interpreter.InterpreterException: /opt/cloudera/parcels/SPARK2/bin/spark-submit: line 17: //../../CDH/lib/bigtop-utils/bigtop-detect-javahome: No such file or directory
/opt/cloudera/parcels/SPARK2/bin/spark-submit: line 19: //../lib/spark2/bin/spark-submit: No such file or directory

这可能与 'spark2-submit' 如何尝试定位它需要工作的路径有关。主要是:

#!/bin/bash
  # Reference: 
  SOURCE="${BASH_SOURCE[0]}"
  BIN_DIR="$( dirname "$SOURCE" )"
  while [ -h "$SOURCE" ]
  do
    SOURCE="$(readlink "$SOURCE")"
    [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
    BIN_DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
  done
  BIN_DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
  CDH_LIB_DIR=$BIN_DIR/../../CDH/lib
  LIB_DIR=$BIN_DIR/../lib
export HADOOP_HOME=$CDH_LIB_DIR/hadoop

希望对某人有所帮助。 :)