はい、正しくあります - spark 2.0.1には、1.6.x以下のような自分自身のuber jarは含まれていません(例:spark-1.6.2-bin-hadoop2.6 \ lib \ spark-assembly-1.6 .2-hadoop2.6.0.jar)
スパーク2.0.0+ spark-release-2-0-0.htmlは、ファットアセンブリウーバージャーを必要としません。しかし、あなたがspark-2.0.0-bin-hadoop2.7\jars\
にspark-assembly-1.6.2-hadoop2.6.0
とLIBS(jarファイルの内容)の内容を比較するときに同じクラスとほぼ同じ内容を見ることができ、パッケージなど
私は古いjarファイルを見つけることができていた場合、私ができるようになりますApache 2.0.1で使用するには? 個人的に私はそうは思わない。下位互換性に関するいくつかの問題があるかもしれません。latest
バージョンで削除されたものがあるのは変です。
@Override
public void afterPropertiesSet() throws Exception {
Assert.hasText(sparkAssemblyJar, "sparkAssemblyJar property was not set. " +
"You must specify the path for the spark-assembly jar file. " +
"It can either be a local file or stored in HDFS using an 'hdfs://' prefix.");
しかし、あなたはSparkYarnTasklet
を使用するときに、このsparkAssemblyJar
だけsparkConf.set("spark.yarn.jar", sparkAssemblyJar);
- で使用される、いくつかpostPropertiesSetの検証があるので
あなたはSparkYarnTasklet組立ジャーが必要であることを右ですプログラムはおそらく妥当性検査で失敗するでしょう(SparkYarnTasklet
と妥当性検査なしでafterPropertiesSet
を上書きしようとすることができます)
そしてdocumentation about "spark.yarn.jar:"
YARN側からスパークランタイムのjarファイルにアクセスできるようにするには、あなたは spark.yarn.archiveまたはspark.yarn.jarsを指定することができます。詳細は、 スパークのプロパティを参照してください。 spark.yarn.archiveとspark.yarn.jarsのどちらも が指定されていない場合、Sparkはすべてのjarファイルを $ SPARK_HOME/jarsに作成し、分散キャッシュにアップロードします。
したがって、プロパティ:spark.yarn.jars
およびspark.yarn.archive
を見てください。 だから、1.6で
- spark.yarn.jarを1.6.x-で
spark.yarn.jar
が何であるかを比較し、2.0.0+。2:デフォルト場所をオーバーライドする場合に
スパークjarファイルの位置が、望まれます。デフォルトでは、YARNのSparkはローカルにインストールされたSpark jarを使用しますが、Spark jarはHDFSの世界で読める場所にもあります。これにより、YARNはアプリケーションを実行するたびに配布する必要がないように、YARNをノードにキャッシュすることができます。たとえば、HDFS上のjarを指すには、この設定をhdfs:/// some/pathに設定します。 2.0.1で
- spark.yarn.jar:糸に コンテナを配布するスパークコードを含むライブラリーの
リスト。デフォルトでは、YARNのSparkはローカルにインストールされた のSpark jarを使用しますが、Spark jarはHDFS上で世界的に読める場所 にもなります。これにより、アプリケーションが実行されるたびに を配布する必要がないように、YARNがノードにキャッシュすることができます。たとえば、 HDFS上のjarを指すには、この構成をhdfs:/// some/pathに設定します。グローブ は許可されています。
これはすべての瓶を1つずつセットするようです。
spark.yarn.jars
の代わりにspark.yarn.archive
があり、jarを1つずつ渡すのを避ける方法を提供します - ルート "dir"のすべてのjarを含むアーカイブを作成します。
私はspring-hadoop
は数週間のうちに2.0.0+の変化を反映しますが、「クイックフィックス」のために、私はおそらくSparkYarnTasklet
をオーバーライドして、2.0.1のための変更を反映しようと考えて - 私は正確にexecuteとafterPropertiesSet方法を見たように。
これは本当に良いアドバイスありがとうございました。私は一歩を踏み出し、時間は私の側にはないが、すぐに2.0.0+にアップグレードしたいと思っているので、今度はspark 1.5.0を使用しました。この情報はすごく役立ちます –