Apache SparkのOutOfMemory

spark-shellの話です.
ベンチマークをしようと思って,ちょっと大きなファイル(数ギガくらい)をsc.textFileしたら,

14/08/28 16:59:45 ERROR network.ConnectionManager: Corresponding SendingConnectionManagerId not found
14/08/28 16:59:45 WARN scheduler.TaskSetManager: Loss was due to java.lang.OutOfMemoryError
java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOf(Arrays.java:2271)
        at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:113)

実行時なのでメモリ枯渇がエクゼキュータ(今回の場合は,HadoopのYARNノードマネージャ...というか要はデータノード)で起こったのかと思ったのですが,ドライバ側(要はHadoopのクライアントノードというか)だったみたいです.

このデフォルトがやたら小さいなと思ったので↓

  --driver-memory MEM         Memory for driver (e.g. 1000M, 2G) (Default: 512M).

大きくして実行すると通りました.

spark-shell --master yarn-client --driver-memory 2G