Apache Spark 使用自制软件从 1.5.2 升级到 1.6.0,导致执行期间权限被拒绝错误
Posted
技术标签:
【中文标题】Apache Spark 使用自制软件从 1.5.2 升级到 1.6.0,导致执行期间权限被拒绝错误【英文标题】:Apache Spark upgrade from 1.5.2 to 1.6.0 using homebrew leading to permission denied error during execution 【发布时间】:2016-01-06 02:50:49 【问题描述】:我刚刚使用 Homebrew 将 Spark 从 1.5.2 升级到 1.6.0,并将我的 SPARK_HOME
环境变量重置为 /usr/local/Cellar/apache-spark/1.6.0
。现在在执行 pyspark 时,它给出了一个权限被拒绝的错误。
如果我进入早期的 1.5.2 安装目录并从那里执行 pyspark,它运行良好。但是从 1.6.0 安装目录运行 pyspark 失败并出现此权限被拒绝错误。
/usr/local/Cellar/apache-spark/1.6.0/bin/load-spark-env.sh: line 2: /usr/local/Cellar/apache-spark/1.6.0/libexec/bin/load-spark-env.sh: Permission denied
/usr/local/Cellar/apache-spark/1.6.0/bin/load-spark-env.sh: line 2: exec: /usr/local/Cellar/apache-spark/1.6.0/libexec/bin/load-spark-env.sh: cannot execute: Undefined error: 0
这可能是什么原因造成的?
【问题讨论】:
【参考方案1】:我遇到了同样的问题,最简单的解决方法是将 $SPARK_HOME
设置为 /usr/local/Cellar/apache-spark/<your_spark_version>/libexec/
。
您也可以直接从源代码构建,您可以找到说明here。
基本上就是这样做
git clone https://github.com/apache/spark/`
cd spark
git checkout origin/branch-X.Y
build/mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package
您需要将$SPARK_HOME
设置为spark 源代码的***目录。
【讨论】:
绝对是一个有用的选择,但我真的需要通过自制软件来完成这项工作 这确实通过自制软件工作,这是我使用的。我在 MAC OSX High Sierra 上运行并按照 /usr/local/Cellar/apache-spark/sparkR
的问题,它也解决了这个问题。项目页面上的一张票帮助了:
unset SPARK_HOME && spark-submit
https://github.com/Homebrew/homebrew/issues/48898#issuecomment-180633967
【讨论】:
【参考方案3】:边做边做
unset SPARK_HOME && pyspark
(感谢下面的 noli)
想让 SparkContext 在 Ipython 中运行,结果很简单。
unset SPARK_HOME
IPYTHON=1 pyspark
【讨论】:
【参考方案4】:对于 MacOs 中的 Pyspark 2.4.4 添加到 .bash_profile:
# Pyspark
export SPARK_HOME='/usr/local/Cellar/apache-spark/2.4.4/libexec/'
export PYSPARK_DRIVER_PYTHON="jupyter"
export PYSPARK_DRIVER_PYTHON_OPTS="notebook"
#For python 3, You have to add the line below or you will get an
# error
export PYSPARK_PYTHON=python3
alias snotebook='$SPARK_PATH/bin/pyspark --master local[4]'
然后用
重新加载source .bash_profile
并使用 pyspark 启动
pyspark
不要取消设置 SPARK_HOME 否则会出现以下错误:
/Users/user/opt/anaconda3/bin/pyspark: line 24: /bin/load-spark-env.sh: No such file or directory
/Users/user/opt/anaconda3/bin/pyspark: line 77: /bin/spark-submit: No such file or directory
/Users/usr/opt/anaconda3/bin/pyspark: line 77: exec: /bin/spark-submit: cannot execute: No such file or directory
【讨论】:
【参考方案5】:我也遇到了同样的错误,比如启动spark-shell
的权限被拒绝。
我更改了文件权限。它对我来说很好。
进入spark-1.6.x
的父目录并执行以下操作:
chmod 777 spark-1.6.x -R
这将递归地更改文件的权限。
【讨论】:
以上是关于Apache Spark 使用自制软件从 1.5.2 升级到 1.6.0,导致执行期间权限被拒绝错误的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch:Apache spark 大数据集成
如何在 Mac OS 上使用自制软件将 postgresql 从 10.1 降级到 9.6 [关闭]