[发明专利]一种HIVE任务执行引擎选择方法和系统有效
申请号: | 201811372098.8 | 申请日: | 2018-11-16 |
公开(公告)号: | CN109634989B | 公开(公告)日: | 2022-03-25 |
发明(设计)人: | 侯志贞;吴庆鑫 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/2458 |
代理公司: | 北京鸿德海业知识产权代理有限公司 11412 | 代理人: | 袁媛 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 hive 任务 执行 引擎 选择 方法 系统 | ||
本申请提供一种HIVE任务执行引擎选择方法和系统,所述方法包括计算任务拓扑图中的关键路径;计算所述关键路径上每个任务的可延迟时间,根据所述可延迟时间选择可用新的执行引擎执行的任务;对所选择的任务测试新的执行引擎,根据测试结果确定所选择的任务的执行引擎;重复上述步骤,直至确定每个任务的执行引擎。减少了对调度系统进行任务配置所需要的人力资源,减少了参数配置出错的失败风险;避免了配置出错引起的任务延迟。
【技术领域】
本申请涉及计算机技术领域,尤其涉及一种HIVE任务执行引擎选择方法和系统。
【背景技术】
Hive是一个开源软件,它用数据分析人员常用的结构化查询语言(StructuredQuery Language,简称SQL)来处理分布式存储系统中的数据。
Hive的执行引擎有三种,使用时间最长,最广泛,最稳定的执行引擎是MapReduce。MapReduce是开源的大数据处理平台Hadoop自带的分布式处理框架。Hive用MapReduce执行SQL任务时,需要0个或多个MapReduce任务来运行最终的结果。如果SQL计算的数据量比较小,不超过一定的值,例如10M(可以参数配置),那么Hive可以把这些数据加载到执行Hive的内存中进行计算。如果数据量比较大,需要用MapReduce在集群上分布式计算。需要的MapReduce的个数根据SQL的表示的数据需要聚合的次数来决定。
MapReduce虽然使用时间长,最稳定,但是它也有缺点。每个MapReduce的输出结果,数据默认存储在分布式存储系统HDFS上。在HDFS上的数据默认有三个副本,分别存储在三台服务器上。好处是存储之后任何一台服务器损坏都不会导致数据丢失。坏处是造成比较大的网络压力,还有服务器的存储压力。
Hive的其他新的执行引擎,如Tez尝试解决这个问题。在Tez中,上面的MapReduce进行处理完后,不再写到分布式存储系统,而是调用下一阶段的Map任务。把Map任务输出保存到本机的硬盘上。然后等待Reduce来读取。这样的好处如下:中间的数据不需要保存在分布式存储系统上,节约存储容量和带宽,并且本地存储的速度比远程存储快;由于上阶段的Reduce和Map任务合并,所以减少任务的数量。
但是也并不是所有的任务都用Tez执行速度快,原因如下:
Hive中每个MapReduce程序运行时,Reduce任务的个数可以根据数据量自动调整。如我们可以设置每256M数据一个Reduce。当MapReduce在提交时,客户端先把要计算的文件大小加起来,配置Reduce的数量。如第一个MapReduce过滤掉大量的记录,所以后续的MapReduce需要计算的数据量较少时,就可以只有少量的Map任务和Reduce任务。而用Tez执行时,下一个阶段的Map任务和上个阶段的Reduce任务是合并执行的,并且Map任务执行时就要知道有多少个Reduce任务,因为在Map阶段数据要根据Reduce的个数进行分区,所以Tez是在提交时一下子确定所有任务的Reduce个数,所以有可能后续的Reduce个数很多,造成计算资源的浪费。
由于MapReduce计算框架使用非常广泛,并且长时间持续优化,所以在物理执行计划比Tez要优化很多,会合并一些Job,减少任务个数。
MapReduce和Tez框架各有优缺点,所以并不是一个框架一定比另的框架更好,要看具体的执行SQL和数据量。Hive调度系统是专门开发的用于调度任务的软件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811372098.8/2.html,转载请声明来源钻瓜专利网。