2017-11-07 14 views
0

SparkとScalaは比較的新しいです。SPARK_HOMEのないスパーク

私はWindowsのボックスとCentosクラスタの両方でローカルモードで実行されるscalaアプリケーションを持っています。

  • 限り火花は私のクラスパス(すなわち、のpom.xml)にあるように、スパークSPARK_HOMEを必要とすることなく、ユニットテストとして実行されます。しかし、spark.driver.memoryのようなSparkプロパティを設定するにはどうしたらいいですか?

  • ローカルで実行されているsparkのインスタンスがある場合、私のユニットテストアプリケーションはローカルモードでは無視しているようです。スパークコンソールに出力が表示されないのは、コマンドラインから(spark-shellコマンドを使用して)起動したスパークインスタンスを使用していることを示唆しています。私は間違っていますか?もしそうでなければ、そのインスタンスを使用するために私のスカラアプリケーションを取得するにはどうしたらいいですか?コメントから有用な情報を含めるように編集

+0

「スパークインスタンス」とは、コマンドラインから始まったものです。あなたはこれを始めるために何をしましたか? – puhlen

+0

スパークを起動するspark-shellコマンド – Jake

+0

btwこれは初心者の質問です。すべての起動ガイドが私にapache_homeを作成し、spark-shellを使用するよう指示するので、私は混乱しています。しかし、これはアプリの開発を呼び起こすこととは無関係のようです。それでSparkSessionから行えないsparkのプロパティを変更したいときに問題につながります。(または私が読んでいる) – Jake

答えて

1

同様


spark_shellは単なるインタラクティブシェルで、それは一人で立っていると、他のプロセスが接続する必要があること、「インスタンス」ではありません。 spark-submit(またはあなたのsparkコードを実行して)でsparkアプリケーションを実行すると、sparkの独自のインスタンスが開始されます。あなたは、彼らがシステムプロパティまたはを通じてbassedすることができます任意のプロパティを設定する必要がある場合はまず、あなたのアプリケーションのjarファイルと依存関係をコンパイルするMavenのアセンブリのプラグインを使用する必要があり--confが


火花提出パラメータ火花を提出。 これはその後、火花提出もSPARK_HOME

に展開しなければならないスクリプトを提出スクリプトは次のようになります使用後SPARK_HOMEディレクトリ に展開する必要があります。

./bin/spark-submit --class xxx.ml.PipelineStart 
--master local[*] 
./xxx/myApp-1.0-SNAPSHOT-jar-with-dependencies.jar 100 

あなたのSparkConfでオプションを設定することができます。 documentationで利用可能な方法を見てください。

SparkConf.setMasterのような特定のプロパティを設定する明示的なメソッドがあります。ただし、明示的にプロパティを設定するメソッドが表示されない場合は、SparkConf.setを使用してください。これはキーと値をとり、設定可能なプロパティはすべてhereです。

プロパティの設定が不明な場合は、SparkConf.getを使用して確認することもできます。

+1

p.s. 'SparkConf.setSparkHome'で' SPARK_HOME'を設定することができます。私はそれについて実際には見ていないので、あまり話すことはできません。ちょうどそこにそれを投げる - 幸運! – sabee