2017-10-19 2 views
1

를 엽니이 잘 작동더 많은 코어를 사용 스파크 (Sparklyr) 오류가 나는 로컬 모드에서 Sparklyr에 다음과 같은 구성을 사용하고

conf <- spark_config() 
conf$`sparklyr.cores.local` <- 28 
conf$`sparklyr.shell.driver-memory` <- "1000G" 
conf$spark.memory.fraction <- 0.9 

sc <- spark_connect(master = "local", 
       version = "2.1.1", 
       config = conf) 

나는 spark_read_csv를 사용하여 CSV 읽을 때. 나는 그런

conf <- spark_config() 
conf$`sparklyr.cores.local` <- 30 
conf$`sparklyr.shell.driver-memory` <- "1000G" 
conf$spark.memory.fraction <- 0.9 

나는 다음과 같은 오류 먹을수록 더 많은 코어를 사용하는 경우에는 :

Blockquote Error in value[3L] : Failed to fetch data: org.apache.spark.SparkException: Job aborted due to stage failure: Task 10 in stage 3.0 failed 1 times, most recent failure: Lost task 10.0 in stage 3.0 (TID 132, localhost, executor driver): java.io.FileNotFoundException: /tmp/blockmgr-9ded7dfb-20b8- 4c72-8a6f-2db12ba884fb/1f/temp_shuffle_e69d56ba-80b4-499f-a91f- 0ae63fe4553f (Too many open files) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.(FileOutputStream.java:213) at org.apache.spark.storage.DiskBlockObjectWriter.initialize(DiskBlockObjectWriter.scala:102) at org.apache.spark.storage.DiskBlockObjectWriter.open(DiskBlockObjectWriter.scala:115) at org.apache.spark.storage.DiskBlockObjectWriter.write(DiskBlockObjectWriter.scala:235) at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.write(BypassMergeSortShuffleWriter.java:152) at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMa

내가 (소프트 및 하드 모두) 1,040에서 419,430에 ulimit를 증가하고이 차이를하지 않았다.

내 VM에는 128 코어와 2T 메모리가 있으며 모든 것을 사용할 수 있기를 원합니다.

제안 사항?

답변

1

스파크 local 모드는 프로덕션 용도가 아닌 소량의 실험 및 단위 테스트 용이며 시스템 제한 사항은 빙산의 절정에 불과합니다. 그것은 하나의 JVM에서 작동하며 메모리 관리와 함께 많은 다른 문제를 기대할 수 있습니다.

전체 스파크는 스케일 업이 아닌 스케일 아웃을 위해 설계되었습니다. 로컬 모드에서 자원을 늘릴 때 성능 향상과 작동 불편을 기대해서는 안됩니다. 또한 계산 리소스가 높은 처리량의 디스크 구성으로 백업되지 않으면 리소스가 제대로 활용되지 않습니다.