2017-02-21 13 views
1

以下のコードはjarファイルとしてビルドされ、sparkSubmitコマンドからputty 。それはうまく動作します。Scala、SparkLauncherはプログラムを実行できません "/etc/spark/conf.cloudera.CD-SPARK_ON_YARN-brkvSOzr/yarn-conf/topology.py"

var conf = new SparkConf().setAppName("ABC") 

val sc = new SparkContext(conf) 

var hiveContext = new HiveContext(sc) 

import sqlContext.implicits._ 

sqlContext.sql("query") 

しかし、私はSparkLauncherを通じて同じコードを実行すると、それは マスター、以下のエラーがスローされます - 糸クラスタ スパーク - 最近アップグレードした後、1.6

java.io.IOException: Cannot run program "/etc/spark/conf.cloudera.CD-SPARK_ON_YARN-brkvSOzr/yarn-conf/topology.py" (in directory "/data4/yarn/nm/usercache/ppmingusrdev/appcache/application_14823231312_123/container_14866508534534_144_01_000004"): error=2, No such file or directory 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:548) 
    at org.apache.hadoop.util.Shell.run(Shell.java:504) 
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:786) 
    at org.apache.hadoop.net.ScriptBasedMapping$RawScriptBasedMapping.runResolveCommand(ScriptBasedMapping.java:251) 
    at org.apache.hadoop.net.ScriptBasedMapping$RawScriptBasedMapping.resolve(ScriptBasedMapping.java:188) 
    at org.apache.hadoop.net.CachedDNSToSwitchMapping.resolve(CachedDNSToSwitchMapping.java:119) 
    at org.apache.hadoop.yarn.util.RackResolver.coreResolve(RackResolver.java:101) 
    at org.apache.hadoop.yarn.util.RackResolver.resolve(RackResolver.java:81) 
    at org.apache.spark.deploy.yarn.YarnAllocator$$anonfun$handleAllocatedContainers$2.apply(YarnAllocator.scala:337) 
    at org.apache.spark.deploy.yarn.YarnAllocator$$anonfun$handleAllocatedContainers$2.apply(YarnAllocator.scala:336) 
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) 
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47) 
    at org.apache.spark.deploy.yarn.YarnAllocator.handleAllocatedContainers(YarnAllocator.scala:336) 
    at org.apache.spark.deploy.yarn.YarnAllocator.allocateResources(YarnAllocator.scala:236) 
    at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$1.run(ApplicationMaster.scala:368) 
Caused by: java.io.IOException: error=2, No such file or directory 
    at java.lang.UNIXProcess.forkAndExec(Native Method) 
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:186) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:130) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028) 

答えて

1

今日は同じエラーを扱いましたCloudera Manager to 5.10私たちの場合は、このバージョンのCMのバグが原因です。

これは、アプリケーションマスタを実行しているワーカーノード(糸クライアントモードの場合は、ドライバを実行しているエッジノードではありません)には、Spark Gatewayロールがないため、spark-on-yarn confディレクトリがないことを意味します。

私たちの回避策は、すべての単一ノードにSpark Gatewayの役割を与え、クライアントの設定を再配備することでした。

あなたの仕事はまだ実行する必要がありますが、データのローカリティが低下しているかどうかはわかりません(おそらくもっと遅くなります)。

+0

こんにちは、私はパテを介してspark-submitコマンドを使用する場合のみ動作します。 SparkLauncherを通過したときに失敗した理由は何ですか?パテではありません –

関連する問題