为什么spark-submit和spark-shell失败并且“找不到Spark程序集JAR。你需要在运行这个程序之前构建Spark。”?

时间:2014-12-23 10:50:04

标签: apache-spark

我正试图运行spark-submit而我得到了     “找不到Spark程序集JAR。     你需要在运行这个程序之前构建Spark。“ 当我尝试运行spark-shell时,我得到了同样的错误。 在这种情况下我必须做什么。

9 个答案:

答案 0 :(得分:46)

在Windows上,我发现如果它安装在路径中有空格的目录(C:\ Program Files \ Spark)中,安装将失败。将其移动到没有空格的根或其他目录。

答案 1 :(得分:27)

您的Spark包不包含已编译的Spark代码。这就是您从这些脚本spark-submitspark-shell收到错误消息的原因。

您必须从the Spark download page的“选择套餐类型”部分下载预制版本之一。

答案 2 :(得分:11)

首先尝试运行mvn -DskipTests clean package来构建Spark。

答案 3 :(得分:5)

如果您的spark二进制文件位于文件夹名称中包含空格的文件夹中(例如,“Program Files(x86)”),则它不起作用。我将其更改为“Program_Files”,然后spark_shell命令在cmd中工作。

答案 4 :(得分:2)

只需添加@ jurban1997答案。

如果您正在运行Windows,请确保SPARK_HOME和SCALA_HOME环境变量设置正确。 SPARK_HOME应该指向{SPARK_HOME} \ bin \ spark-shell.cmd

答案 5 :(得分:1)

如果您已下载二进制文件并获得此异常

enter image description here

然后请检查您的Spark_home路径可能包含“apache spark”/ bin

等空格

只需删除空格即可。

答案 6 :(得分:0)

  

Spark安装:

     

对于Window机器:

Download spark-2.1.1-bin-hadoop2.7.tgz from this site https://spark.apache.org/downloads.html

Unzip and Paste your spark folder in C:\ drive and set environment variable.

If you don’t have Hadoop,
you need to create Hadoop folder and also create Bin folder in it and then copy and paste winutils.exe file in it.

download winutils file from [https://codeload.github.com/gvreddy1210/64bit/zip/master][1] 

and paste winutils.exe file in Hadoop\bin folder and set environment variable for c:\hadoop\bin;

create temp\hive folder in C:\ drive and give the full permission to this folder like: 

C:\Windows\system32>C:\hadoop\bin\winutils.exe chmod 777 /tmp/hive

open command prompt first run C:\hadoop\bin> winutils.exe  and then navigate to C:\spark\bin>

run spark-shell

答案 7 :(得分:0)

在我的情况下,我在macOS系统上通过pip3 install pyspark安装spark,并且由于错误的SPARK_HOME变量而导致错误。当我运行如下命令时,它可以工作:

PYSPARK_PYTHON=python3 SPARK_HOME=/usr/local/lib/python3.7/site-packages/pyspark python3 wordcount.py a.txt

答案 8 :(得分:0)

  1. 转到temp_plot + transition_reveal2(x) 。请注意,您的SPARK_HOME变量末尾不应包含SPARK_HOME。在将其添加到以下路径时提及它:/bin

  2. 运行export PATH=$SPARK_HOME/bin:$PATH向Maven分配更多内存。

  3. 运行export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=1g",请耐心等待。我的系统花了1个小时17分钟来完成此操作。

  4. 运行./build/mvn -DskipTests clean package。这仅适用于python / pyspark。您可以为Hive,Kubernetes等添加更多标志。

运行./dev/make-distribution.sh --name custom-spark --pippyspark现在将分别启动pyspark和spark。