Мой набор данных ввода - около 150G. Я устанавливаюИскра: память исполнителя превышает физический предел
--conf spark.cores.max=100
--conf spark.executor.instances=20
--conf spark.executor.memory=8G
--conf spark.executor.cores=5
--conf spark.driver.memory=4G
но поскольку данные не равномерно распределены по исполнителям, я продолжал получать
Container killed by YARN for exceeding memory limits. 9.0 GB of 9 GB physical memory used
вот мои вопросы:
1. Did I not set up enough memory in the first place? I think 20 * 8G > 150G, but it's hard to make perfect distribution, so some executors will suffer
2. I think about repartition the input dataFrame, so how can I determine how many partition to set? the higher the better, or?
3. The error says "9 GB physical memory used", but i only set 8G to executor memory, where does the extra 1G come from?
Спасибо!
Вы устанавливаете экземпляры искрообразования на 20. Это означает, что вы будете запускать 20 исполнителей по 8G каждый, если я правильно помню. Можете ли вы попытаться уменьшить их, а затем попробовать? Сокращение до 1 будет началом. – ar7
Привет, сэр, поэтому, если я уменьшу исполнитель до 1, у меня будет только 1 исполнитель с памятью 8G, тогда вход 150G не может поместиться в – user2628641
Это может быть связано с тем, что контейнер с пряжей не был настроен на достаточную память. Возможное решение проблемы, с которой вы столкнулись? http://stackoverflow.com/a/33118489/6199146 и http://m.blog.csdn.net/article/details?id=50387104 – ar7