1

私はpysparkでPythonスクリプトを実行すると、次のエラーを得ています: NameError:名前「スパーク」がスパーク設定を変更してspark.dynamicAllocation.enabledを許可する方法は?

が定義されていない、私はそれを見て、その理由はspark.dynamicAllocation.enabledがまだ許可されていないことであることがわかりました。

Sparkの文書(https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-dynamic-allocation.html#spark_dynamicAllocation_enabled)によると、spark.dynamicAllocation.enabled(デフォルト:false)は、動的割り当てを有効にするかどうかを制御します。 spark.executor.instancesが設定されていないか、または0(デフォルト値)であるとみなされます。

デフォルト設定はfalseなので、スパーク設定をspark.dynamicAllocation.enabledに変更する必要があります。

スパークを沸かしてインストールしましたが、設定や設定は変更されませんでした。

設定を変更してspark.dynamicAllocation.enabledを有効にするにはどうすればよいですか?

ありがとうございます。

+0

上記のリンクは公式な文書を作成するものではありません。ジャックのApache Spark Bookをマスターしています。それを適切に変更してください:) –

答えて

1

設定できる場所がいくつかあります。ジョブごとに有効にしたい場合は、各アプリケーションで次のように設定します。

conf.set("spark.dynamicAllocation.enabled","true") 

あなたはすべてのジョブの場合は設定したい場合は、spark.confファイルに移動します。 Hortonworksディストリビューションでは、

/usr/hdp/current/spark-client/conf/ 

に設定する必要があります。あなたのspark-defaults.confに設定を追加してください。

+0

ありがとう!私は仕事ごとにそれを有効にしたいと思います。 conf.set( "spark.dynamicAllocation.enabled"、 "true")これはターミナルに入力するコマンドラインですか?このコマンドラインを入力する前に、どのディレクトリを変更する必要がありますか?どうもありがとう! – mflowww

+0

spark-shellを使用してコマンドラインから実行している場合は、次のコマンドを使用してシェルを起動します。 spark-shell --conf spark.dynamicAllocation.enabled = true 現在のディレクトリはcomでシェルを起動する アプリケーションを作成する場合は、conf.set()でspark configを作成した後で、アプリケーション内でアプリケーションを設定します。 –

+0

ありがとうございました。そうですか。私がPythonスクリプトを書いていて、コマンドラインで(pysparkシェル内ではなく)spark-submitで実行しようとすると、このコード行を私のPythonスクリプトに入れるだけです。 – mflowww

2

このようにプログラムで行うことができます。

+0

ありがとう!私が書いたpysparkにあなたがここで提供したスクリプトを含める必要がありますか?または、これは変更する必要がある構成.shファイルの一部です。 – mflowww

+0

これをあなたのPythonプログラムファイルに含める必要があります。さらに上記はscala構文 –

+0

ありがとうございます。私はpysparkに送るPythonスクリプトを書いています。あなたがここで提案するものを修正し、それが機能するかどうかを見てみましょう。 – mflowww

0

これは、Amazon Web Servicesにインストールするspark-ec2スクリプトなど、他のリソースを使用して作成されたSparkインストールにも影響する問題です。スパークの文書からは、SPARK_HOME/confに/スパーク-defaults.confに2つの値を設定する必要があります。インストールがSPARK_HOMEでspark-env.shスクリプトを持っている場合https://spark.apache.org/docs/latest/configuration.html#dynamic-allocation

spark.shuffle.service.enabled true 
spark.dynamicAllocation.enabled true 

はこれを見ます/ confには、次のような行がないか、コメントアウトされていることを確認してください。

export SPARK_WORKER_INSTANCES=1 #or some other integer, or 
export SPARK_EXECUTOR_INSTANCES=1 #or some me other integer 
関連する問題