in fact with --driver-memory 2G I can get it working On Thu, Oct 9, 2014 at 6:20 PM, Xiangrui Meng <men...@gmail.com> wrote:
> Please use --driver-memory 2g instead of --conf > spark.driver.memory=2g. I'm not sure whether this is a bug. -Xiangrui > > On Thu, Oct 9, 2014 at 9:00 AM, Jaonary Rabarisoa <jaon...@gmail.com> > wrote: > > Dear all, > > > > I have a spark job with the following configuration > > > > val conf = new SparkConf() > > .setAppName("My Job") > > .set("spark.serializer", > "org.apache.spark.serializer.KryoSerializer") > > .set("spark.kryo.registrator", "value.serializer.Registrator") > > .setMaster("local[4]") > > .set("spark.executor.memory", "4g") > > > > > > that I can run manually with sbt run without any problem. > > > > But, I try to run the same job with spark-submit > > > > ./spark-1.1.0-bin-hadoop2.4/bin/spark-submit \ > > --class value.jobs.MyJob \ > > --master local[4] \ > > --conf spark.executor.memory=4g \ > > --conf spark.driver.memory=2g \ > > target/scala-2.10/my-job_2.10-1.0.jar > > > > > > I get the following error : > > > > Exception in thread "stdin writer for List(patch_matching_similarity)" > > java.lang.OutOfMemoryError: Java heap space > > at java.util.Arrays.copyOf(Arrays.java:2271) > > at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:113) > > at > > > java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93) > > at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:140) > > at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) > > at java.io.BufferedOutputStream.write(BufferedOutputStream.java:126) > > at com.esotericsoftware.kryo.io.Output.flush(Output.java:155) > > at com.esotericsoftware.krput.writeString_slow(Output.java:420) > > at com.esotericsoftware.kryo.io.Output.writeString(Output.java:326) > > at > > > com.esotericsoftware.kryo.serializers.DefaultSerializers$StringSerializer.write(DefaultSerializers.java:153) > > at > > > com.esotericsoftware.kryo.serializers.DefaultSerializers$StringSerializer.write(DefaultSerializers.java:146) > > at com.esotericsoftware.kryo.Kryo.writeObjectOrNull(Kryo.java:549) > > at > > > com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:570) > > at > > > com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213) > > at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:568) > > at > > > org.apache.spark.serializer.KryoSerializationStream.writeObject(KryoSerializer.scala:119) > > at > > > org.apache.spark.serializer.SerializationStream.writeAll(Serializer.scala:110) > > at > > > org.apache.spark.storage.BlockManager.dataSerializeStream(BlockManager.scala:1047) > > at > > > org.apache.spark.storage.BlockManager.dataSerialize(BlockManager.scala:1056) > > at org.apache.spark.storage.MemoryStore.putArray(MemoryStore.scala:93) > > at org.apache.spark.storage.BlockManager.doPut(BlockManager.scala:745) > > at org.apache.spark.storage.BlockManager.putArray(BlockManager.scala:625) > > at > org.apache.spark.CacheManager.putInBlockManager(CacheManager.scala:167) > > at org.apache.spark.CacheManager.getOrCompute(CacheManager.scala:70) > > at org.apache.spark.rdd.RDD.iterator(RDD.scala:227) > > at org.apache.spark.rdd.FilteredRDD.compute(FilteredRDD.scala:34) > > at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262) > > at org.apache.spark.rdd.RDD.iterator(RDD.scala:229) > > at > > > org.apache.spark.rdd.CartesianRDD$$anonfun$compute$1.apply(CartesianRDD.scala:75) > > at > > > org.apache.spark.rdd.CartesianRDD$$anonfun$compute$1.apply(CartesianRDD.scala:74) > > at > > > scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371)yo.io.Output.require(Output.java:135) > > at com.esotericsoftware.kryo.io.Out > > > > > > I don't understand why since I set the same amount of memory in the two > > cases. > > > > Any ideas will be helpfull. I use spark 1.1.0. > > > > Cheers, > > > > Jao >