当前位置: 首页 > 知识库问答 >
问题:

火花对纱罐上传问题的影响

皇甫学海
2023-03-14

我正在尝试使用spark over Thread(CentOS上的Cloudera Hadoop 5.2)运行一个简单的Map/Reduce java程序。我试过两种不同的方法。第一种方法是:

YARN_CONF_DIR=/usr/lib/hadoop-yarn/etc/hadoop/; 
/var/tmp/spark/spark-1.4.0-bin-hadoop2.4/bin/spark-submit --class MRContainer --master yarn-cluster --jars /var/tmp/spark/spark-1.4.0-bin-hadoop2.4/lib/spark-assembly-1.4.0-hadoop2.4.0.jar  simplemr.jar

此方法会产生以下错误:

诊断:应用程序application_1434177111261_0007失败2次,原因是appattempt_1434177111261的AM容器_0007_000002退出exitCode:-1000原因:资源hdfs://kc1ltcld29: 9000/user/myuser/。/>在src文件系统上更改(预期1434549639128,1434549642191

然后我试着不带--罐子:

YARN_CONF_DIR=/usr/lib/hadoop-yarn/etc/hadoop/; 
/var/tmp/spark/spark-1.4.0-bin-hadoop2.4/bin/spark-submit --class MRContainer --master yarn-cluster simplemr.jar

诊断:应用程序application_1434177111261_0008失败2次,由于AM容器appattempt_1434177111261_0008_000002退出exitCode:-1000由于:文件不存在:hdfs://kc1ltcld29:9000/user/myuser/。这次尝试失败了...申请失败。Application ationMaster主机: N/A Application ationMaster RPC端口:-1队列:root.myuser开始时间: 1434549879649最终状态:失败跟踪URL:超文本传输协议://kc1ltcld29:8088/集群/应用程序/application_1434177111261_0008用户: myuser异常在线程"main"org.apache.spark.Spark异常:应用程序application_1434177111261_0008完成org.apache.spark.deploy.yarn.Client.run(Client.scala:841)在org.apache.spark.deploy.yarn.客户端$. main(Client.scala:867)在org.apache.spark.deploy.yarn.Client.main(Client.scala)在sun.reflect.NativeMEDAccessorImpl.invoke0(本地方法)在sun.reflect.NativeMEDAccessorImpl.invoke(NativeMEDAccessorImpl.java:57)在sun.reflect.委托方法mpl.invoke(委托方法mpl.java:43)在java.lang.reflect.方法调用(方法. java: 601)在org. apache. Spark.部署。SparkSubmit$. org$apache$SparkSubmit$$runMain(SparkSubmit. scala: 664),网址为org. apache. Spark.部署。SparkSubmit$. doRunMain 1美元(SparkSubmit. scala: 169)在org. apache. Spark.部署。SparkSubmit$。提交(SparkSubmit. scala: 192)在org. apache. Spark.部署。SparkSubmit$. main(SparkSubmit. scala: 111)在org. apache. Spark.部署。SparkSubmit. main(SparkSubmit. scala)15/06/17 10:04:57 INFO util.Utils:停机钩子称为15/06/17 10:04:57 INFO util.删除目录 /tmp/spark-2aca3f35-abf1-4e21-a10e-4778a039d0f4

我试着删除所有的文件。来自hdfs://users//.sparkStaging并重新提交,但这没有帮助。

共有2个答案

李兴安
2023-03-14

如果您遇到此错误,则表示您正在使用--jars选项上载程序集jar,或手动复制到每个节点中的hdfs。我采用了这种方法,它对我很有效。

在yarn集群模式下,Spark提交会自动将程序集jar上传到分布式缓存中,所有执行器容器都从该缓存中读取,因此无需手动将程序集jar复制到所有节点(或通过--jars)。在HDFS中,似乎有两个版本的同一jar。

试着把你家里所有的旧罐子都拿走。sparkStaging目录并重试,它应该可以工作。

暨正真
2023-03-14

通过复制火花组件解决了该问题。将jar放入hdfs上每个节点的目录中,然后将其传递给spark submit--conf spark。纱线jar作为参数。命令如下所示:

hdfs dfs -copyFromLocal /var/tmp/spark/spark-1.4.0-bin-hadoop2.4/lib/spark-assembly-1.4.0-hadoop2.4.0.jar /user/spark/spark-assembly.jar 

/var/tmp/spark/spark-1.4.0-bin-hadoop2.4/bin/spark-submit --class MRContainer --master yarn-cluster  --conf spark.yarn.jar=hdfs:///user/spark/spark-assembly.jar simplemr.jar
 类似资料:
  • 然而,我不知道我是否真的需要一个插件,如果需要,是哪一个,以及如何去做它。我尝试使用'build/mvn'和'build/sbt'直接编译github源代码,但是'spark-assembly2.11-2.0.2.jar'文件只有283字节。 我的目标是使用较新版本的fat jar运行pyspark shell,其方式与这里提到的类似。

  • 我试图通过以下命令向CDH纱线集群提交spark作业 我试过几种组合,但都不起作用。。。现在,我的本地/root以及HDFS/user/root/lib中都有所有poi JAR,因此我尝试了以下方法 如何将JAR分发到所有集群节点?因为上面这些都不起作用,作业仍然无法引用该类,因为我一直收到相同的错误: 同样的命令也适用于“--master本地”,但没有指定--jar,因为我已经将我的jar复制到

  • 我正在一个playscala应用程序中从1.6升级到spark 2.0,不太确定如何设置我想要的jar文件。以前会定义一个SparkConf,我可以调用的方法之一是setJars,它允许我指定我想要的所有jar文件。现在我正在使用SparkSession构建器构建我的spark conf和spark上下文,我没有看到任何类似的方法来指定jar文件?我该怎么做? 这是我之前如何创建我的火花会议: 我

  • 我可以从IDE(远程)编程运行这个程序吗?我使用Scala-IDE。我寻找一些代码来遵循,但仍然没有找到合适的 我的环境:-Cloudera 5.8.2[OS redhat 7.2,kerberos 5,Spark2.1,scala 2.11]-Windows 7

  • 我正在尝试 https://github.com/apache/spark/blob/v2.0.1/examples/src/main/scala/org/apache/spark/examples/sql/streaming/StructuredNetworkWordCountWindowed.scala 个例子。 但是,指定端口号处的输入应该是什么?

  • 嗨,我对Spark很陌生。我正在Apache Spark scala命令行上执行以下命令