입력 데이터 세트가 약 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?
감사합니다! 0.1 * 당신의 유언 집행 메모리 설정에
spark.yarn.executor.memoryOverhead
이 기본값 :
당신은 spark 실행자 인스턴스를 20으로 설정하고 있습니다. 이것은 정확하게 기억한다면 8G 각각의 20 명의 실행자를 시작할 것임을 의미합니다. 줄이려고 시도해 볼 수 있습니까? 1로 줄이면 시작됩니다. – ar7
안녕하세요, 저는 Executor를 1로 줄이면 8G 메모리가있는 실행 프로그램이 1 개만 있고 150G 입력은 – user2628641
에 들어 가지 않습니다. 원사 컨테이너가 충분한 메모리로 구성되지 않았기 때문일 수 있습니다. 직면하고있는 오류에 대한 가능한 해결책은 무엇입니까? http://stackoverflow.com/a/33118489/6199146 및 http://m.blog.csdn.net/article/details?id=50387104 – ar7