我已经在Windows8.1上安装了hadoop2.7.1和Spark1.4.1
当我执行以下命令时
cd spark
spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode client lib/spark-examples*.jar 10
我在jobhistoryserver日志中发现以下错误
Error: Could not find or load main class '-Dspark.externalBlockStore.folderName=spark-262c4697-ef0c-4042-af0c-8106b08574fb'
我做了进一步的调试(沿着搜索网),可以得到容器cmd脚本,下面的部分(其他行被省略)给出
...
@set CLASSPATH=C:/tmp/hadoop-xyz/nm-local-dir/usercache/xyz/appcache/application_1487502025818_0003/container_1487502025818_0003_02_000001/classpath-3207656532274684591.jar
...
@call %JAVA_HOME%/bin/java -server -Xmx512m -Djava.io.tmpdir=%PWD%/tmp '-Dspark.fileserver.uri=http://192.168.1.2:34814' '-Dspark.app.name=Spark shell' '-Dspark.driver.port=34810' '-Dspark.repl.class.uri=http://192.168.1.2:34785' '-Dspark.driver.host=192.168.1.2' '-Dspark.externalBlockStore.folderName=spark-dd9f3f84-6cf4-4ff8-b0f6-7ff84daf74bc' '-Dspark.master=yarn-client' '-Dspark.driver.appUIAddress=http://192.168.1.2:4040' '-Dspark.jars=' '-Dspark.executor.id=driver' -Dspark.yarn.app.container.log.dir=/dep/logs/userlogs/application_1487502025818_0003/container_1487502025818_0003_02_000001 org.apache.spark.deploy.yarn.ExecutorLauncher --arg '192.168.1.2:34810' --executor-memory 1024m --executor-cores 1 --num-executors 2 1> /dep/logs/userlogs/application_1487502025818_0003/container_1487502025818_0003_02_000001/stdout 2> /dep/logs/userlogs/application_1487502025818_0003/container_1487502025818_0003_02_000001/stderr
我检查了类路径的相关文件,看起来没问题。主要班级 org.apache.spark.deploy.yarn.ExecutorLauncher
可在Spark装配罐中使用,Spark装配罐是容器罐的一部分
那么,这里的问题是什么?我在网上搜索了很多讨论,但都是针对unix的,而针对windows的讨论不多。我想知道spark submit是否真的可以在没有任何特殊设置的情况下在windows上工作(仅限于yarn客户端模式,独立群集模式工作)!!!
顺便说一句,如果我从 cmd.exe
命令提示符下,我得到了相同的错误,因为所有命令行参数都用单引号而不是双引号引起来(使这些双引号起作用!!),这是虫子吗
注意Spark壳也会失效(在Yarn模式下),但是 yarn jar ...
指挥工作
1条答案
按热度按时间qni6mghb1#
看起来是早期版本的缺陷。使用最新的hadoop2.7.3和spark2.1.0,它工作正常。!!!但找不到任何引用。