[ 
https://issues.apache.org/jira/browse/SPARK-33620?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladislav Sterkhov updated SPARK-33620:
---------------------------------------
    Description: 
Hello i have problem with big memory used ~2000gb hdfs stack. With 300gb memory 
used task starting and complete, but we need use unlimited stack. Please help

 

!VlwWJ.png|width=644,height=150!

 

!mgg1s.png|width=651,height=182!

 
 This my code:
  {{var filteredRDD = sparkContext.emptyRDD[String]
 for (path<- pathBuffer){ 
 val someRDD = sparkContext.textFile(path) 
 if (isValidRDD(someRDD))
 filteredRDD = filteredRDD.++(someRDD.filter(row =>\{...}) 
 }
 hiveService.insertRDD(filteredRDD.repartition(10), outTable)}}

 


 been other way. When i got StackOverflowError after many iteration spark

 
  {{java.lang.StackOverflowError
 at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2303)
 at 
java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2596)
 at 
java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2606)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
 at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1707)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1345)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)}}
 \{{}}
 \{{}}
 How i must build my code with repartitional and persist\coalesce for to nodes 
not crashes?

I tried to rebuild the program in different ways, transferring repartitioning 
and saving in memory / disk inside the loop, installed a large number of 
partitions - 200.

The program either hangs on the “repartition” stage or crashes into error code 
143 (outOfMemory), throwing a stackOverflowError in a strange way.

  was:
Hello i have problem with big memory used ~2000gb hdfs stack. With 300gb memory 
used task starting and complete, but we need use unlimited stack. Please help

 

!VlwWJ.png|width=644,height=150!

 

!mgg1s.png|width=651,height=182!

 
This my code:
 {{var filteredRDD = sparkContext.emptyRDD[String]
for (path<- pathBuffer)\{ 
val someRDD = sparkContext.textFile(path) 
if (isValidRDD(someRDD))
       filteredRDD = filteredRDD.++(someRDD.filter(row => {...}) 
}
hiveService.insertRDD(filteredRDD.repartition(10), outTable)}}
{{}}
{{}}
been other way. When i got StackOverflowError after many iteration spark

 
 {{java.lang.StackOverflowError
    at 
java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2303)
    at 
java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2596)
    at 
java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2606)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1707)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1345)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
    at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)}}
{{}}
{{}}
How i must build my code with repartitional and persist\coalesce for to nodes 
not crashes?

I tried to rebuild the program in different ways, transferring repartitioning 
and saving in memory / disk inside the loop, installed a large number of 
partitions - 200.

The program either hangs on the “repartition” stage or crashes into error code 
143 (outOfMemory), throwing a stackOverflowError in a strange way.


> Task not started after filtering
> --------------------------------
>
>                 Key: SPARK-33620
>                 URL: https://issues.apache.org/jira/browse/SPARK-33620
>             Project: Spark
>          Issue Type: Question
>          Components: Spark Core
>    Affects Versions: 2.4.7
>            Reporter: Vladislav Sterkhov
>            Priority: Major
>         Attachments: VlwWJ.png, mgg1s.png
>
>
> Hello i have problem with big memory used ~2000gb hdfs stack. With 300gb 
> memory used task starting and complete, but we need use unlimited stack. 
> Please help
>  
> !VlwWJ.png|width=644,height=150!
>  
> !mgg1s.png|width=651,height=182!
>  
>  This my code:
>   {{var filteredRDD = sparkContext.emptyRDD[String]
>  for (path<- pathBuffer){ 
>  val someRDD = sparkContext.textFile(path) 
>  if (isValidRDD(someRDD))
>  filteredRDD = filteredRDD.++(someRDD.filter(row =>\{...}) 
>  }
>  hiveService.insertRDD(filteredRDD.repartition(10), outTable)}}
>  
>  been other way. When i got StackOverflowError after many iteration spark
>  
>   {{java.lang.StackOverflowError
>  at 
> java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2303)
>  at 
> java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2596)
>  at 
> java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2606)
>  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319)
>  at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
>  at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
>  at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
>  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
>  at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
>  at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
>  at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
>  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
>  at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1707)
>  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1345)
>  at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
>  at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924)
>  at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)}}
>  \{{}}
>  \{{}}
>  How i must build my code with repartitional and persist\coalesce for to 
> nodes not crashes?
> I tried to rebuild the program in different ways, transferring repartitioning 
> and saving in memory / disk inside the loop, installed a large number of 
> partitions - 200.
> The program either hangs on the “repartition” stage or crashes into error 
> code 143 (outOfMemory), throwing a stackOverflowError in a strange way.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to