Tôi gặp lỗi khi sử dụng mllib RandomForest để huấn luyện dữ liệu. Khi số liệu của tôi là rất lớn và phân vùng mặc định là tương đối nhỏ. vì vậy một ngoại lệ ném chỉ ra rằng "Kích thước vượt quá Integer.MAX_VALUE", stack trace orignal như sau,Tại sao phân vùng Spark RDD có giới hạn 2 GB cho HDFS?
15/04/16 14:13:03 WARN scheduler.TaskSetManager: Lost nhiệm vụ 19.0 trong giai đoạn 6.0 (TID 120, 10.215.149.47): java.lang.IllegalArgumentException: Kích thước vượt quá Integer.MAX_VALUE
tại sun.nio.ch.FileChannelImpl.map (FileChannelImpl.java:828) tại org.apache.spark.storage.DiskStore .getBytes (DiskStore.scala: 123) tại org.apache.spark.storage.DiskStore.getBytes (DiskStore.scala: 132) tại org.apache.spark.storage.BlockManager.doGetLocal (BlockManager.scala: 517) tại org.apache.spark.storage.BlockManager.getLocal (BlockManager.scala: 432) tại org.apache.spark.storage.BlockManager.get (BlockManager.scala: 618) tại org.apache.spark.CacheManager. putInBlockManager (CacheManager.scala: 146) tại org.apache.spark.CacheManager.getOrCompute (CacheManager.scala: 70)
các Integer.MAX_SIZE là 2GB, có vẻ như một số phân vùng ra khỏi bộ nhớ. Vì vậy, tôi repartiton phân vùng rdd của tôi đến 1000, để mỗi phân vùng có thể giữ dữ liệu ít hơn như trước. Cuối cùng, vấn đề được giải quyết !!!
Vì vậy, câu hỏi của tôi là: Tại sao kích thước phân vùng có giới hạn 2G? Dường như không có cấu hình thiết lập cho các giới hạn trong spark
http://stackoverflow.com/questions/8076472/filechannel-map-integer-max-value-limit-error – experquisite