【技术实现步骤摘要】
一种基于SparkJoin操作的自适应数据倾斜调整方法
本专利技术涉及大数据处理
,特别是涉及一种基于SparkJoin操作的自适应数据倾斜调整方法。
技术介绍
目前,数据倾斜是Spark大数据计算中最棘手的问题之一,发生数据倾斜时Spark作业的性能会比期望差很多。一般说shuffle是产生数据倾斜的主要原因,在进行shuffle的时候,必须将各个节点上相同的key拉取到某个节点上的一个task来进行处理。进行Join操作时尤其容易发生数据倾斜,因为正常的join操作涉及到shuffle,在按照key进行join操作的过程中,如果某个key对应的数据量特别大的话,就会发生数据倾斜。如大部分key对应10条数据,但是个别key却对应了100万条数据,那么大部分task可能就只会分配到10条数据,假设1秒钟就运行完了;但是个别task可能分配到了100万数据,可能要运行一两个小时。整个Spark作业的运行进度是由运行时间最长的那个task决定的,因此出现数据倾斜的时候,Spark作业看起来会运行得非常缓慢,甚至可能因为某个task处理的数据量过大导致内存溢出。 ...
【技术保护点】
一种基于SparkJoin操作的自适应数据倾斜调整方法,其特征在于,包括:确定join操作的对象;当join操作的对象为大表和小表时,采用Broadcast变量与map类算子实现join操作;当join操作的对象为均匀表和不均匀表时,若不均匀表中少数key对应的数据量过大,采样数据量过大的少数key,分拆join操作;当join操作的对象为均匀表和不均匀表时,若不均匀表中大量key对应的数据量过大,通过添加随机前缀和扩容RDD进行join操作。
【技术特征摘要】
1.一种基于SparkJoin操作的自适应数据倾斜调整方法,其特征在于,包括:确定join操作的对象;当join操作的对象为大表和小表时,采用Broadcast变量与map类算子实现join操作;当join操作的对象为均匀表和不均匀表时,若不均匀表中少数key对应的数据量过大,采样数据量过大的少数key,分拆join操作;当join操作的对象为均匀表和不均匀表时,若不均匀表中大量key对应的数据量过大,通过添加随机前缀和扩容RDD进行join操作。2.如权利要求1所述的方法,其特征在于,采用Broadcast变量与map类算子实现join操作,包括:将小表中的数据保存到Driver端内存中,创建Broadcast变量;对大表执行map类算子操作;将大表和小表进行join操作。3.如权利要求2所述的方法,其特征在于,所述将大表和小表进行join操作,包括:在map类算子的函数内,从Broadcast变量中获取小表的全部数据,将小表的数据与大表的数据按照连接key进行比对,若连接key相同,将小表和大表进行连接。4.如权...
【专利技术属性】
技术研发人员:曹芳,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。