飞艇与 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
希望对某人有所帮助。 :)
我正在尝试配置 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
希望对某人有所帮助。 :)