You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Sahil Takiar (JIRA)" <ji...@apache.org> on 2018/03/06 21:24:01 UTC

[jira] [Commented] (HIVE-15104) Hive on Spark generate more shuffle data than hive on mr

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

Sahil Takiar commented on HIVE-15104:
-------------------------------------

Hey [~lirui] I found some time to do some internal testing of this patch. I ran a 1 TB Parquet TPC-DS benchmark (subset of 49 queries, run three times each) on a physical cluster and found similar results to your TPC-DS benchmark.
|| ||Baseline Run (default configuration)||Optimized Serde||Optimized Serde + No GroupBy||
||Shuffle Bytes Read|699.5 GB|530.7 GB|531.6 GB|
||Shuffle Bytes Written|690 GB|529.5 GB|530.3 GB|
||Total Latency (min)|202|191|190|

So about a 25% improvement on shuffle data and 5% performance improvement. I think the improvement for the shuffle data is significant and is a good improvement.

A few questions on the implementation.
 * The {{HiveKryoRegistrator}} still seems to be serializing the {{hashCode}} so where are the actual savings coming from?
 * I'm not sure I understand why the performance should improve when {{hive.spark.use.groupby.shuffle}} is set to {{false}}. It's still using the same registrator right?
 * You said that we need to serialize the {{hashCode}} because "{{The cached RDDs will be serialized when stored to disk or transferred via network, then we need the hash code after the data is deserialized"}} - why do we need the {{hashCode}} after deserializing the data?

> Hive on Spark generate more shuffle data than hive on mr
> --------------------------------------------------------
>
>                 Key: HIVE-15104
>                 URL: https://issues.apache.org/jira/browse/HIVE-15104
>             Project: Hive
>          Issue Type: Bug
>          Components: Spark
>    Affects Versions: 1.2.1
>            Reporter: wangwenli
>            Assignee: Rui Li
>            Priority: Major
>             Fix For: 3.0.0
>
>         Attachments: HIVE-15104.1.patch, HIVE-15104.10.patch, HIVE-15104.2.patch, HIVE-15104.3.patch, HIVE-15104.4.patch, HIVE-15104.5.patch, HIVE-15104.6.patch, HIVE-15104.7.patch, HIVE-15104.8.patch, HIVE-15104.9.patch, TPC-H 100G.xlsx
>
>
> the same sql,  running on spark  and mr engine, will generate different size of shuffle data.
> i think it is because of hive on mr just serialize part of HiveKey, but hive on spark which using kryo will serialize full of Hivekey object.  
> what is your opionion?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)