一种考虑任务相关性的Hive优化方法及系统与流程

文档序号:12470267阅读:来源:国知局

技术特征:

1.一种考虑任务相关性的Hive优化方法,其特征在于,所述方法包括:

将HQL语句转化为MapReduce物理计划,并获取所述MapReduce物理计划中各MapReduce Job在shuffle阶段用于排序的键shuffle key;

根据相关性规则,合并所述各MapReduce Job中相关MapReduce Job。

2.如权利要求1所述的方法,其特征在于,所述相关性规则包括:

规则a.若n个MapReduce Job间不包含父子关系且shuffle key相同,则所述n个MapReduce Job互为相关MapReduce Job,并对所述规则a确定的相关MapReduce Job进行合并,其中,n为正整数且n小于所述MapReduce物理计划中MapReduce Job的总个数;

规则b.若父MapReduce Job与其所有子MapReduce Job的shuffle key相同,则所述父MapReduce Job与其所有子MapReduce Job互为相关MapReduce Job,并对所述规则b确定的相关MapReduce Job进行合并;

规则c.若父MapReduce Job与其所有子MapReduce Job中的一个子MapReduce Job的shuffle key相同,则所述父MapReduce Job与其所有子MapReduce Job中的一个子MapReduce Job互为相关MapReduce Job,并对所述规则c确定的相关MapReduce Job进行合并。

3.如权利要求2所述的方法,其特征在于,所述对所述规则a确定的相关MapReduce Job进行合并包括:

所述n个MapReduce Job读磁盘时读取所述n个MapReduce Job对应的map函数的处理数据并将所述n个MapReduce Job对应的map函数输出数据的n个shuffle key分别与n个标记{tag1,tag2...tagi...tagn}进行合并,获取合并结果其中,为第i个MapReduce Job对应的map函数的处理数据,为第i个MapReduce Job对应的map函数的处理数据的排序键,为第i个MapReduce Job对应的map函数的处理数据的排序键的属性值,为第i个MapReduce Job对应的map函数输出数据,为第i个MapReduce Job对应的shuffle key且列相同,第i个MapReduce Job对应的shuffle key的属性值,tagi为唯一对应关系,用于标记shuffle key与MapReduce Job的对应关系;

将所述合并结果放入shuffle过程,通过shuffle key对应的标记确定数据来源,将第i个标记tagi对应的发送至所述第i个MapReduce Job的reduce函数。

4.如权利要求2所述的方法,其特征在于,所述对所述规则b确定的相关MapReduce Job进行合并包括:

所述父MapReduce Job的所有子MapReduce Job互为所述规则a定义的相关MapReduce Job,则将所述父MapReduce Job的所有子MapReduce Job按所述对所述规则a确定的相关MapReduce Job进行合并的合并方式进行合并;

将所述父MapReduce Job的所有子MapReduce Job对应的reduce函数处理结果直接发送至所述父MapReduce Job的map函数,且所述父MapReduce Job的map函数直接将所述父MapReduce Job的map函数的输出结果发送至所述父MapReduce Job的reduce函数。

5.如权利要求2所述的方法,其特征在于,所述对所述规则c确定的相关MapReduce Job进行合并包括:

所述父MapReduce Job读磁盘时读取与其不相关的子MapReduce Job的存盘结果和与其相关的子MapReduce Job对应的map函数的处理数据;

将所述与其相关的子MapReduce Job对应的map函数的处理数据发送至所述与其相关的子MapReduce Job对应的map函数并获取所述与其相关的子MapReduce Job对应的map函数的输出结果,将该输出结果放入shuffle过程,再发送至所述与其相关的子MapReduce Job对应的reduce函数,将所述与其相关的子MapReduce Job对应的reduce函数的输出结果直接发送至所述父MapReduce Job对应的map函数,并直接将所述父MapReduce Job对应的map函数的输出结果发送至所述父MapReduce Job对应的reduce函数;

将所述与其不相关的子MapReduce Job的存盘结果发送至所述父MapReduce Job对应的map函数并获取所述父MapReduce Job对应的map函数的输出结果,将该输出结果放入shuffle过程,再发送至所述父MapReduce Job对应的reduce函数。

6.一种考虑任务相关性的Hive优化系统,其特征在于,所述系统包括:相互连接的HQL解释器和查询优化器,其中,所述HQL解释器,用于将HQL语句转化为MapReduce物理计划,并获取所述MapReduce物理计划中各MapReduce Job在shuffle阶段用于排序的键shuffle key,所述查询优化器,用于接收所述MapReduce物理计划并根据相关性规则,合并所述MapReduce物理计划中各MapReduce Job中相关MapReduce Job。

7.如权利要求6所述的系统,其特征在于,所述相关性规则包括:

规则a.若n个MapReduce Job间不包含父子关系且shuffle key相同,则所述n个MapReduce Job互为相关MapReduce Job,并对所述规则a确定的相关MapReduce Job进行合并,其中,n为正整数且n小于所述MapReduce物理计划中MapReduce Job的总个数;

规则b.若父MapReduce Job与其所有子MapReduce Job的shuffle key相同,则所述父MapReduce Job与其所有子MapReduce Job互为相关MapReduce Job,并对所述规则b确定的相关MapReduce Job进行合并;

规则c.若父MapReduce Job与其所有子MapReduce Job中的一个子MapReduce Job的shuffle key相同,则所述父MapReduce Job与其所有子MapReduce Job中的一个子MapReduce Job互为相关MapReduce Job,并对所述规则c确定的相关MapReduce Job进行合并。

8.如权利要求7所述的系统,其特征在于,所述对所述规则a确定的相关MapReduce Job进行合并包括:

所述n个MapReduce Job读磁盘时读取所述n个MapReduce Job对应的map函数的处理数据并将所述n个MapReduce Job对应的map函数输出数据的n个shuffle key分别与n个标记{tag1,tag2...tagi...tagn}进行合并,获取合并结果其中,为第i个MapReduce Job对应的map函数的处理数据,为第i个MapReduce Job对应的map函数的处理数据的排序键,为第i个MapReduce Job对应的map函数的处理数据的排序键的属性值,为第i个MapReduce Job对应的map函数输出数据,为第i个MapReduce Job对应的shuffle key且列相同,第i个MapReduce Job对应的shuffle key的属性值,tagi为唯一对应关系,用于标记shuffle key与MapReduce Job的对应关系;

将所述合并结果放入shuffle过程,通过shufflekey对应的标记确定数据来源,将第i个标记tagi对应的发送至所述第i个MapReduce Job的reduce函数。

9.如权利要求7所述的系统,其特征在于,所述对所述规则b确定的相关MapReduce Job进行合并包括:

所述父MapReduce Job的所有子MapReduce Job互为所述规则a定义的相关MapReduce Job,则将所述父MapReduce Job的所有子MapReduce Job按所述对所述规则a确定的相关MapReduce Job进行合并的合并方式进行合并;

将所述父MapReduce Job的所有子MapReduce Job对应的reduce函数处理结果直接发送至所述父MapReduce Job的map函数,且所述父MapReduce Job的map函数直接将所述父MapReduce Job的map函数的输出结果发送至所述父MapReduce Job的reduce函数。

10.如权利要求7所述的系统,其特征在于,所述对所述规则c确定的相关MapReduce Job进行合并包括:

所述父MapReduce Job读磁盘时读取与其不相关的子MapReduce Job的存盘结果和与其相关的子MapReduce Job对应的map函数的处理数据;

将所述与其相关的子MapReduce Job对应的map函数的处理数据发送至所述与其相关的子MapReduce Job对应的map函数并获取所述与其相关的子MapReduce Job对应的map函数的输出结果,将该输出结果放入shuffle过程,再发送至所述与其相关的子MapReduce Job对应的reduce函数,将所述与其相关的子MapReduce Job对应的reduce函数的输出结果直接发送至所述父MapReduce Job对应的map函数,并直接将所述父MapReduce Job对应的map函数的输出结果发送至所述父MapReduce Job对应的reduce函数;

将所述与其不相关的子MapReduce Job的存盘结果发送至所述父MapReduce Job对应的map函数并获取所述父MapReduce Job对应的map函数的输出结果,将该输出结果放入shuffle过程,再发送至所述父MapReduce Job对应的reduce函数。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1