Я играл вокруг с Спарк с помощью прилагаемого искровой-EC2:pyspark использует только половину памяти EC2-искру
./spark-ec2 \
--key-pair=pems \
--identity-file=/path/pems.pem \
--region=eu-west-1 \
-s 8 \
--instance-type c3.xlarge \
launch my-spark-cluster
После установки я SSH в главном узле после того, как она полностью установлена, а затем я начала pyspark.
$ /root/spark/bin/pyspark --executor-memory 2G
Я указываю (по крайней мере, думаю), что каждый исполнитель (машина) получает 2 ГБ памяти. Когда я просматриваю консоль на <masternode>:4040
, я вижу, что что-то не так.
Когда я ввожу другие предпочтения я получаю тот же результат.
$ /root/spark/bin/pyspark --executor-memory 1G
Запутанной часть для меня является то, что я указал c3.xlarge
машины и они имеют ~ 7,5 Гб оперативной памяти, так что это не должно быть проблемой с нехваткой памяти. У кого-нибудь есть идея?
возможно поднять его? учитывая, что я хочу загружать данные из s3 * once * для остальной части анализа, это похоже на то, что я хотел бы поднять вручную. – cantdutchthis
да, вы можете увеличить его. при запуске исполнителя --config spark.storage.memoryFraction 0.8, обратите внимание, что это не должно быть больше, чем «старое» поколение объектов в JVM, которое по умолчанию дается 0,6 кучи. – banjara
примечание для будущих читателей. вы можете использовать эту команду: '' '/ root/spark/bin/pyspark --conf spark.storage.memoryFraction = 0.75''' – cantdutchthis