web-dev-qa-db-ja.com

Apacheのノードごとのメモリーを変更する方法spark worker

Apache Sparkクラスターを構成しています。

1つのマスターと3つのスレーブでクラスターを実行すると、マスターモニターページに次のように表示されます。

Memory
2.0 GB (512.0 MB Used)
2.0 GB (512.0 MB Used)
6.0 GB (512.0 MB Used)

ワーカーの使用メモリを増やしたいのですが、これに適した設定が見つかりませんでした。 spark-env.shを以下のように変更しました。

export SPARK_WORKER_MEMORY=6g
export SPARK_MEM=6g
export SPARK_DAEMON_MEMORY=6g
export SPARK_Java_OPTS="-Dspark.executor.memory=6g"
export Java_OPTS="-Xms6G -Xmx6G"

ただし、使用されるメモリは同じです。使用済みメモリを変更するにはどうすればよいですか?

33
Ha Pham

1.0.0+を使用し、spark-Shellまたはspark-submitを使用する場合は、--executor-memoryオプション。例えば。

spark-Shell --executor-memory 8G ...

.9.0以下:

ジョブを開始するとき、またはシェルを開始するときは、メモリを変更します。基になるJavaアプリケーションの引数としてコマンドライン引数を伝えるように、spark-Shellスクリプトを修正する必要がありました。特に:

OPTIONS="$@"
...
$FWDIR/bin/spark-class $OPTIONS org.Apache.spark.repl.Main "$@"

次に、spark Shellを次のように実行します。

spark-Shell -Dspark.executor.memory=6g

スタンドアロンjar用に構成する場合、sparkコンテキストを作成する前にシステムプロパティをプログラムで設定し、コマンドライン引数として値を渡します(長い巻き上げシステムのプロパティよりも短くすることができます)その後)。

System.setProperty("spark.executor.memory", valueFromCommandLine)

デフォルトのクラスタ全体を変更することに関しては、申し訳ありませんが、それを適切に行う方法が完全にはわかりません。

最後のポイント-2GBのノードが2つ、6GBのノードが1つあるという事実に少し心配です。使用できるメモリは最小ノードに制限されます-ここでは2GBです。

16
samthebest

Spark 1.1.1、ワーカーの最大メモリを設定するには、conf/spark.env.shで次のように記述します。

export SPARK_EXECUTOR_MEMORY=2G

構成ファイルをまだ使用していない場合は、テンプレートファイルをコピーします

cp conf/spark-env.sh.template conf/spark-env.sh

次に、変更を行い、それを調達することを忘れないでください

source conf/spark-env.sh
13
Tristan Wu

私の場合、ipythonノートブックサーバーを使用してsparkに接続します。 executorのメモリを増やしたいです。

これが私がすることです:

from pyspark import SparkContext
from pyspark.conf import SparkConf

conf = SparkConf()
conf.setMaster(CLUSTER_URL).setAppName('ipython-notebook').set("spark.executor.memory", "2g")

sc = SparkContext(conf=conf)
10
Ha Pham

Spark documentation によると、ノードごとのMemoryを変更できますコマンドライン引数--executor-memory申請の提出中。例えば。

./bin/spark-submit \
  --class org.Apache.spark.examples.SparkPi \
  --master spark://master.node:7077 \
  --executor-memory 8G \
  --total-executor-cores 100 \
  /path/to/examples.jar \
  1000

私はテストしましたが、動作します。

9
FuzzY

ワーカーのデフォルト設定では、Host_Memory - 1Gb各ワーカー。その値を手動で調整するための構成パラメーターはSPARK_WORKER_MEMORY、あなたの質問のように:

export SPARK_WORKER_MEMORY=6g

1
maasg