spark提交不起作用

vwoqyblh  于 2021-06-03  发布在  Hadoop
关注(0)|答案(4)|浏览(399)

我正在尝试使用bin/spark submit运行spark应用程序。当我在本地文件系统中引用我的应用程序jar时,它就工作了。但是,当我将应用程序jar复制到hdfs中的一个目录时,出现以下异常:
警告:跳过远程jarhdfs://localhost:9000/user/hdfs/jars/simple-project-1.0-snapshot.jar。java.lang.classnotfoundexception:com.example.simpleapp
命令如下: $ ./bin/spark-submit --class com.example.SimpleApp --master local hdfs://localhost:9000/user/hdfs/jars/simple-project-1.0-SNAPSHOT.jar 我使用的是hadoop版本2.6.0,spark版本1.2.1

uqjltbpv

uqjltbpv1#

当我使用
--主纱团

jutyujz0

jutyujz02#

是的,必须是本地文件。我想这就是答案。

fv2wmkja

fv2wmkja3#

要使spark job可以访问hdfs库,必须在集群模式下运行job。

$SPARK_HOME/bin/spark-submit \
--deploy-mode cluster \
--class <main_class> \
--master yarn-cluster \
hdfs://myhost:8020/user/root/myjar.jar

此外,还为客户机模式提出了spark jira,但目前还不受支持。
spark-10643:支持客户端模式下的hdfs应用程序下载spark-submit

wecizke3

wecizke34#

有一个解决办法。您可以将hdfs中的目录(包含应用程序jar)装载为本地目录。
我也这么做了(对于azure blob存储,但对于hdfs应该是类似的)
azure wasb的命令示例 sudo mount -t cifs //{storageAccountName}.file.core.windows.net/{directoryName} {local directory path} -o vers=3.0,username={storageAccountName},password={storageAccountKey},dir_mode=0777,file_mode=0777 现在,在spark submit命令中,您提供了来自上面命令的路径 $ ./bin/spark-submit --class com.example.SimpleApp --master local {local directory path}/simple-project-1.0-SNAPSHOT.jar

相关问题