[ 
https://issues.apache.org/jira/browse/SPARK-5081?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14541576#comment-14541576
 ] 

Dr. Christian Betz commented on SPARK-5081:
-------------------------------------------

Hi,

I can now say that this was not a fix!

Here's a single task from that count stage:

||Index ▾||ID||Attempt||Status||Locality Level||Executor ID / Host||Launch 
Time||Duration||GC Time||Input Size / Records||Shuffle Read Size / 
Records||Shuffle Spill (Memory)||Shuffle Spill (Disk)||Errors||
|11|128|0|SUCCESS|PROCESS_LOCAL|3 / marvin.pmd.local|2015/05/13 09:55:08|3.9 
min|15 s|352.3 KB (memory) / 1171|10.0 MB / 854977|2.1 GB|113.5 MB|

As you can see, for an input-size+shuffle-read-size of approx 10.0 MByte, it 
produces a ShuffleSpill to Memory of 2.1 GByte, to disk 114 MByte.

Here's the debugString of the RDD that I'm counting in this task:

{noformat}
(20) MapPartitionsRDD[64] at mapValues at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
 |        CachedPartitions: 20; MemorySize: 181.7 MB; TachyonSize: 0.0 B; 
DiskSize: 360.7 MB
 |   MapPartitionsRDD[63] at mapPartitionsToPair at 
NativeMethodAccessorImpl.java:-2 [Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[62] at mapValues at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[61] at leftOuterJoin at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[60] at leftOuterJoin at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[59] at leftOuterJoin at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
 |   CoGroupedRDD[58] at leftOuterJoin at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[57] at mapPartitionsToPair at 
NativeMethodAccessorImpl.java:-2 [Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[56] at mapPartitionsToPair at 
NativeMethodAccessorImpl.java:-2 [Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[55] at mapValues at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[54] at filter at NativeMethodAccessorImpl.java:-2 [Disk 
Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[53] at join at NativeMethodAccessorImpl.java:-2 [Disk 
Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[52] at join at NativeMethodAccessorImpl.java:-2 [Disk 
Memory Deserialized 1x Replicated]
 |   CoGroupedRDD[51] at join at NativeMethodAccessorImpl.java:-2 [Disk Memory 
Deserialized 1x Replicated]
 |   MapPartitionsRDD[50] at mapPartitionsToPair at 
NativeMethodAccessorImpl.java:-2 [Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[49] at mapValues at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[48] at cogroup at core.clj:310 [Disk Memory Deserialized 
1x Replicated]
 |   MapPartitionsRDD[47] at cogroup at core.clj:310 [Disk Memory Deserialized 
1x Replicated]
 |   CoGroupedRDD[46] at cogroup at core.clj:310 [Disk Memory Deserialized 1x 
Replicated]
 |   PartitionerAwareUnionRDD[45] at PartitionerAwareUnionRDD at core.clj:326 
[Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[42] at filter at NativeMethodAccessorImpl.java:-2 [Disk 
Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[41] at mapValues at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
 |   ShuffledRDD[31] at partitionBy at core.clj:489 [Disk Memory Deserialized 
1x Replicated]
 +-(31) MapPartitionsRDD[30] at mapToPair at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
    |   CoalescedRDD[29] at coalesce at NativeMethodAccessorImpl.java:-2 [Disk 
Memory Deserialized 1x Replicated]
    |   MapPartitionsRDD[28] at filter at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
    |   MapPartitionsRDD[27] at map at NativeMethodAccessorImpl.java:-2 [Disk 
Memory Deserialized 1x Replicated]
    |   hdfs://host/path.avro NewHadoopRDD[26] at newAPIHadoopFile at 
hadoopAvro.clj:24 [Disk Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[44] at filter at NativeMethodAccessorImpl.java:-2 [Disk 
Memory Deserialized 1x Replicated]
 |   MapPartitionsRDD[43] at mapValues at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
 |   ShuffledRDD[40] at partitionBy at core.clj:489 [Disk Memory Deserialized 
1x Replicated]
 +-(10) MapPartitionsRDD[39] at mapToPair at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
    |   JdbcRDD[38] at JdbcRDD at jdbc.clj:64 [Disk Memory Deserialized 1x 
Replicated]
 |   ShuffledRDD[34] at partitionBy at core.clj:489 [Disk Memory Deserialized 
1x Replicated]
 +-(10) MapPartitionsRDD[33] at mapToPair at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
    |   JdbcRDD[32] at JdbcRDD at jdbc.clj:64 [Disk Memory Deserialized 1x 
Replicated]
 |   ShuffledRDD[37] at partitionBy at core.clj:489 [Disk Memory Deserialized 
1x Replicated]
 +-(10) MapPartitionsRDD[36] at mapToPair at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
    |   JdbcRDD[35] at JdbcRDD at jdbc.clj:64 [Disk Memory Deserialized 1x 
Replicated]
 |   ShuffledRDD[3] at partitionBy at core.clj:489 [Disk Memory Deserialized 1x 
Replicated]
 |       CachedPartitions: 20; MemorySize: 657.0 KB; TachyonSize: 0.0 B; 
DiskSize: 50.0 KB
 +-(1) MapPartitionsRDD[2] at mapToPair at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
    |  MapPartitionsRDD[1] at map at NativeMethodAccessorImpl.java:-2 [Disk 
Memory Deserialized 1x Replicated]
    |  JdbcRDD[0] at JdbcRDD at jdbc.clj:64 [Disk Memory Deserialized 1x 
Replicated]
 |   ShuffledRDD[6] at partitionBy at core.clj:489 [Disk Memory Deserialized 1x 
Replicated]
 |       CachedPartitions: 20; MemorySize: 5.1 MB; TachyonSize: 0.0 B; 
DiskSize: 0.0 B
 +-(1) MapPartitionsRDD[5] at mapToPair at NativeMethodAccessorImpl.java:-2 
[Disk Memory Deserialized 1x Replicated]
    |  JdbcRDD[4] at JdbcRDD at jdbc.clj:64 [Disk Memory Deserialized 1x 
Replicated]
{noformat}


> Shuffle write increases
> -----------------------
>
>                 Key: SPARK-5081
>                 URL: https://issues.apache.org/jira/browse/SPARK-5081
>             Project: Spark
>          Issue Type: Bug
>          Components: Shuffle
>    Affects Versions: 1.2.0
>            Reporter: Kevin Jung
>            Priority: Critical
>         Attachments: Spark_Debug.pdf, diff.txt
>
>
> The size of shuffle write showing in spark web UI is much different when I 
> execute same spark job with same input data in both spark 1.1 and spark 1.2. 
> At sortBy stage, the size of shuffle write is 98.1MB in spark 1.1 but 146.9MB 
> in spark 1.2. 
> I set spark.shuffle.manager option to hash because it's default value is 
> changed but spark 1.2 still writes shuffle output more than spark 1.1.
> It can increase disk I/O overhead exponentially as the input file gets bigger 
> and it causes the jobs take more time to complete. 
> In the case of about 100GB input, for example, the size of shuffle write is 
> 39.7GB in spark 1.1 but 91.0GB in spark 1.2.
> spark 1.1
> ||Stage Id||Description||Input||Shuffle Read||Shuffle Write||
> |9|saveAsTextFile| |1169.4KB| |
> |12|combineByKey| |1265.4KB|1275.0KB|
> |6|sortByKey| |1276.5KB| |
> |8|mapPartitions| |91.0MB|1383.1KB|
> |4|apply| |89.4MB| |
> |5|sortBy|155.6MB| |98.1MB|
> |3|sortBy|155.6MB| | |
> |1|collect| |2.1MB| |
> |2|mapValues|155.6MB| |2.2MB|
> |0|first|184.4KB| | |
> spark 1.2
> ||Stage Id||Description||Input||Shuffle Read||Shuffle Write||
> |12|saveAsTextFile| |1170.2KB| |
> |11|combineByKey| |1264.5KB|1275.0KB|
> |8|sortByKey| |1273.6KB| |
> |7|mapPartitions| |134.5MB|1383.1KB|
> |5|zipWithIndex| |132.5MB| |
> |4|sortBy|155.6MB| |146.9MB|
> |3|sortBy|155.6MB| | |
> |2|collect| |2.0MB| |
> |1|mapValues|155.6MB| |2.2MB|
> |0|first|184.4KB| | |



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to