私は、以下のコマンドを使用してスパーク開発のためiPythonノートを育てた:スパークPythonのパフォーマンス・チューニング
ipython notebook --profile=pyspark
そして、私はこのようなPythonコードを使用してsc
SparkContext作成:私はしたい
import sys
import os
os.environ["YARN_CONF_DIR"] = "/etc/hadoop/conf"
sys.path.append("/opt/cloudera/parcels/CDH/lib/spark/python")
sys.path.append("/opt/cloudera/parcels/CDH/lib/spark/python/lib/py4j-0.8.1-src.zip")
from pyspark import SparkContext, SparkConf
from pyspark.sql import *
sconf = SparkConf()
conf = (SparkConf().setMaster("spark://701.datafireball.com:7077")
.setAppName("sparkapp1")
.set("spark.executor.memory", "6g"))
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)
を文書内でspark.executor.memory
をよりよく理解するために
ExecutorプロセスごとにJVMメモリ文字列と同じ形式で使用するメモリ
これは、1つのノードで実行されているすべてのプロセスの累積メモリがその上限を超えないことを意味しますか?その場合、できるだけ高い数値に設定する必要がありますか?
また、いくつかのプロパティのリストもあります。パフォーマンスを向上させるためにデフォルトから微調整できるいくつかのパラメータがあります。
ありがとうございます!
2番目から最後の段落を明確にしてください。あなたは0.6、0.4、特に0.5のpython計算にどうやって来たのですか? – javadba
@javadba、0.6はspark.storage.memoryFraction(デフォルト、https://spark.apache.org/docs/1.3.0/configuration.html)です。 Pythonの場合は0.4が(1 - 0.6)、Pythonの場合0.5が私の使用例への私の期待です(最悪の場合、Pythonのメモリ使用量は0.6 * 2と予想されるので、0.5は私の環境の純粋な経験値です) 。 –
numpyといくつかのPythonマシンでネイティブコードを使用するライブラリを学習することを考えてみましょう。すべてのメモリはspark.executor.memoryから来ますか?または、O/Sのスパークの外側から来ますか?ありがとう! – javadba