我正在尝试使用Spark提交在Spark集群上运行胖jar。 我使用AWS上的Spark包中的“spark-ec2”可执行文件创建了集群。
我用来运行jar文件的命令是
bin/spark-submit --class edu.gatech.cse8803.main.Main --master yarn-cluster ../src1/big-data-hw2-assembly-1.0.jar
在开始时,它给出了一个错误,即必须至少设置一个 HADOOP_CONF_DIR 或 YARN_CONF_DIR 环境变量。 我不知道将它们设置为什么,所以我使用了以下命令
export HADOOP_CONF_DIR=/mapreduce/conf
现在错误已更改为
Could not load YARN classes. This copy of Spark may not have been compiled with YARN support.
Run with --help for usage help or --verbose for debug output
主目录结构如下
ephemeral-hdfs hadoop-native mapreduce persistent-hdfs scala spark spark-ec2 src1 tachyon
我甚至将YARN_CONF_DIR变量设置为与HADOOP_CONF_DIR相同的值,但错误消息没有改变。我无法找到任何突出显示此问题的文档,其中大多数只是提到这两个变量而没有提供更多详细信息。
答案 0 :(得分:2)
您需要针对Yarn编译spark才能使用它。
按照此处说明的步骤操作:https://spark.apache.org/docs/latest/building-spark.html
的Maven:
build/mvn -Pyarn -Phadoop-2.x -Dhadoop.version=2.x.x -DskipTests clean package
SBT:
build/sbt -Pyarn -Phadoop-2.x assembly
您也可以在此处下载预编译版本:http://spark.apache.org/downloads.html(选择“预先为Hadoop构建”)
答案 1 :(得分:1)
答案 2 :(得分:0)
--master
参数应为:--master spark://hostname:7077
其中 hostname 是Spark主服务器的名称。您还可以在spark-defaults.conf文件中将此值指定为spark.master
,并在从命令行使用Spark submit时省略--master
参数。包含--master
参数将覆盖spark-defaults.conf文件中的值集(如果存在)。