AWS EMR cluster spark job memory settings

Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

AWS EMR cluster spark job memory settings

Post by Сабина »

I cannot see translit here with new forum format, so hopefully English will do.

There is Spark job failing on memory allocation, specifically in CloudWatch I can see that HDFS is running out of space fast. I know memory tuning for Spark app is a not trivial and I have very little expertise in it
https://databricks.com/blog/2015/05/28/ ... tions.html

Need to see if memory settings need to be tuned . Below are some recommendation from gceasy.io based on GC log from cluster
Current flags are:

Code: Select all

LD_LIBRARY_PATH="/usr/lib/hadoop/lib/native:/usr/lib/hadoop-lzo/lib/native:$LD_LIBRARY_PATH" {{JAVA_HOME}}/bin/java -server -XX:OnOutOfMemoryError='kill %p' -Xms2048m -Xmx2048m '-verbose:gc' '-XX:+PrintGCDetails' '-XX:+PrintGCDateStamps' '-XX:+UseConcMarkSweepGC' '-XX:CMSInitiatingOccupancyFraction=70' '-XX:MaxHeapFreeRatio=70' '-XX:+CMSClassUnloadingEnabled' '-XX:OnOutOfMemoryError=kill -9 %p' -Djava.io.tmpdir={{PWD}}/tmp '-Dspark.port.maxRetries=32' '-Dspark.history.ui.port=18080' '-Dspark.driver.port=45330' '-Dspark.ui.port=0' -Dspark.yarn.app.container.log.dir=<LOG_DIR> org.apache.spark.executor.CoarseGrainedExecutorBackend --driver-url spark://CoarseGrainedScheduler@1.....:45330 --executor-id 3 --hostname ip-....ec2.internal --cores 4 --app-id application_1489430908790_1946 --user-class-path file:$PWD/__app__.jar 1> <LOG_DIR>/stdout 2> <LOG_DIR>/stderr
UPD: We should probably switch to G1 collector from CMS ( if possible because it is EMR cluster from AWS). Also Tungsten whenever it's ready -
https://spark-summit.org/2017/events/de ... ory-model/
Screen Shot 2017-03-15 at 11.02.19 AM.png
Screen Shot 2017-03-15 at 11.02.09 AM.png
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: AWS EMR cluster spark job memory settings

Post by Сабина »

Судя по отсутствию мнений никто с етим не сталкивался. Решили ето лечить бы scaling up, но GC все таки тоже подкрутить (CMS -G1 etc) , посколько судя по HDFS disk space chart - происходит spill to disk из-за нехватки памяти

https://groups.google.com/forum/#!topic ... SvecwAzODg

Also Spark upgrade , memory management in 2.1.0 is already improved big time
http://spark.apache.org/docs/latest/tuning.html
https://www.youtube.com/watch?v=wOwblaKmyVw
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: AWS EMR cluster spark job memory settings

Post by iDesperado »

а которая версия спарка сейчас у амазона ?
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: AWS EMR cluster spark job memory settings

Post by Сабина »

iDesperado wrote: 17 Mar 2017 07:48 а которая версия спарка сейчас у амазона ?
у нас 1.6.1 и таки да, старовато. Версию мы сами выбираем, GC тоже.
Я собственно докопалась до сущностей, оказалось что нам надо элементарно scale up. Точнее есть куча всего что можно сделать еще до того, но это отдельная история. Конкретно эти падения кластера были изз большого обьема данных раз в сутки (overnight job). Понять можно глядя на DAG, code, немного на GC лог и понимая что именно приложение делает = business tasks. Никакие доп tools не пользовали, точнее на нашла и обошлась без них
https://www.youtube.com/watch?v=wOwblaKmyVw

Return to “Вопросы и новости IT”