【发布时间】:2014-08-25 23:07:13
【问题描述】:
我能够对我的 cloudera 集群进行 spark-submit。几分钟后工作就死了,但有例外抱怨找不到各种课程。这些是 spark 依赖路径中的类。我一直使用命令行 args --jars 一次添加一个罐子,纱线日志不断转储它找不到的下一个罐子。
什么设置允许 spark/yarn 作业找到所有依赖的 jar?
我已经将“spark.home”属性设置为正确的路径 - /opt/cloudera/parcels/CDH/lib/spark
【问题讨论】:
-
澄清你在说什么类? Spark 课程还是您自己的课程?你是如何运行 spark-submit 的?
-
这些是火花类。我正在使用 spark-submit 指定纱线集群作为主人。这似乎是一个集群配置问题。抱怨 classnotfound 的节点始终是节点 2,即使我将其从 spark 中退役。如果节点 2 不再是 spark 集群的一部分,为什么 yarn 会联系节点 2 进行 spark 作业?
-
这里是部分 spark-submit 脚本 - #!/bin/bash export SPARK_HOME=/home/bruce/workspace1/spark-cloudera source $SPARK_HOME/conf/spark-env.sh /home/ bruce/workspace1/spark-cloudera/bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --deploy-mode cluster \ --master yarn \ --verbose \ /home/bruce/workspace1/ spark-cloudera/examples/target/scala-2.10/spark-examples-1.0.0-cdh5.1.0-hadoop2.3.0-cdh5.1.0.jar 10. 省略了太长的 --driver-class-path 行.
-
这与节点 2 无关。完全删除节点 2 后,节点 1 显示相同的异常。不知何故,纱线应用程序大师看不到火花依赖类。有谁知道这种依赖是如何建立的?
-
我通过将 assembly.jar 添加到 --jar 来作弊。现在我超越了类依赖项。然而,这显然不是正确的方法。我检查了这个 assembly.jar 是否也在 hdfs /user/spark/share/lib/spark-assembly.jar 中。但应用程序大师只是看不到它。有什么想法吗?
标签: apache-spark cloudera