Spark数据倾斜解决方案一:聚合源数据


Spark数据倾斜问题大多数会发生在,程序中使用了产生Shuffle算子的操作,比如:reduceByKey,groupByKey,join,repartition,aggregateByKey等操作。那么,如果我们能够在程序中避免使用这些产生Shuffle算子的话,也就解决了数据倾斜问题。

在实际中,Spark作业所处理的数据的来源大多数是Hive表,而Hive表的数据一般都是用Hive ETL,也就是HQL得到的。假如说在Spark应用中的某个执行聚合算子操作的地方产生了数据倾斜,那么可以直接在做Hive ETL的时候就对数据进行Key的预聚合处理,或者和其他表的join操作。那么在执行Spark的应用中,就不需要使用到原先的Shuffle类算子操作了。所以,这种方案从根源上解决了数据倾斜。但是,由于数据本身就存在分布不均匀的情况,这种处理只是仅仅避免了Spark发生数据倾斜,但是在Hive ETL中执行Shuffle类算子时,依然存在数据倾斜问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1、 分配更多资源 1.1.1、分配哪些资源? Executor的数量 每个Executor所能分配的CPU数...
    miss幸运阅读 3,223评论 3 15
  • 1、 性能调优 1.1、 分配更多资源 1.1.1、分配哪些资源? Executor的数量 每个Executor所...
    Frank_8942阅读 4,648评论 2 36
  • 场景 数据倾斜解决方案与shuffle类性能调优 分析 数据倾斜 有的时候,我们可能会遇到大数据计算中一个最棘手的...
    过江小卒阅读 3,506评论 0 9
  • 前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的...
    Alukar阅读 912评论 0 2
  • 公司新闻视频直播需要添加实时文字和gif水印,在网上看了下大部分都是基于GPUImage来处理的,发现大部分添加水...
    改变自己_now阅读 5,090评论 13 11