我是Spark的新手。 我想在集群上运行Spark结构化流应用程序。 主人和工人的配置相同。
我很少有关于使用spark-submit提交集群上的应用程序的查询: 您可能会发现它们可笑或奇怪。
我正在使用以下脚本进行Spark提交。
spark-submit
--class <class-name>
--master spark://master:7077
--deploy-mode cluster
--supervise
--conf spark.driver.extraClassPath <jar1, jar2..jarn>
--executor-memory 4G
--total-executor-cores 8
<running-jar-file>
但是代码未按预期运行。 我想念什么吗?
答案 0 :(得分:1)
要将多个jar文件传递给Spark提交,您可以在文件SPARK_HOME_PATH/conf/spark-defaults.conf
中设置以下属性(如果不存在则创建):
不要忘记在路径末尾使用*
spark.driver.extraClassPath /fullpath/to/jar/folder/*
spark.executor.extraClassPath /fullpathto/jar/folder/*
当您使用spark-submit命令时,Spark将在文件spark-defaults.conf
中设置属性。
将jar文件复制到该目录,然后在集群上提交Spark App时,也会加载指定路径中的jar文件。
spark.driver.extraClassPath :要附加的附加类路径条目 到驱动程序的类路径。注意:在客户端模式下,此配置 不得直接在您的应用程序中通过SparkConf进行设置, 因为驱动程序JVM已在此时启动。代替, 请通过--driver-class-path命令行选项进行设置,或者 在默认属性文件中。
答案 1 :(得分:0)
--jars
会将您的jar文件传输到工作节点,并在驱动程序和执行者的类路径中可用。
请参阅下面的链接以查看更多详细信息。
http://spark.apache.org/docs/latest/submitting-applications.html#advanced-dependency-management
答案 2 :(得分:-1)
您可以制作一个包含所有依赖项的胖子。下面的链接可帮助您了解这一点。