Hive中自制用户提取信息工具的方法和装置制造方法

文档序号:6627660阅读:151来源:国知局
Hive中自制用户提取信息工具的方法和装置制造方法
【专利摘要】本发明提供了一种Hive中自制用户提取信息工具的方法和装置,包括编写新类,新类继承Hive中的用户自定义函数UDF类;根据用户自定义需求,在新类中重构evaluate函数,完成Hive中自制用户提取信息工具;将Hive中自制用户提取信息工具进行打包,并导入到目标分布式集群中;在Hive客户端上配置Hive中自制用户提取信息工具,并使用Hive中自制用户提取信息工具查询用户需要的数据。本发明能够满足用户的个性化查询,且能够提高用户查询的便利性。
【专利说明】Hive中自制用户提取信息工具的方法和装置

【技术领域】
[0001]本发明涉及数据处理【技术领域】,尤其涉及一种Hive中自制用户提取信息工具的方法和装置。

【背景技术】
[0002]随着数据海量剧增,单一的计算机已经不能存储海量数据,因此,分布式集群受到了大家的关注。在分布式集群中,可以将数据分布到多台计算机中存储并且可以实现分布式计算。Hadoop是分布式系统基础架构,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用廉价计算机集群的威力高速运算和存储。
[0003]Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据表,提供完整的结构化查询语言(SQL, Structured Query Language)查询功能,可以将SQL语句转换为MapReduce任务进行运行,也可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,Hive是非常适合数据仓库的统计分析。
[0004]Hive的类SQL语言给数据挖掘工作者带来了很多便利,海量数据通过简单的SQL语句就可以完成分析,但Hive提供的函数功能满足不了用户的个性化业务需求。


【发明内容】

[0005]为了解决上述技术问题,本发明提供了一种Hive中自制用户提取信息工具的方法和装置,能够提供满足用户个性化需求的查询工具。
[0006]为了达到本发明目的,本发明提供了一种Hive中自制用户提取信息工具的方法,包括:编写新类,该新类继承Hive中的用户自定义函数UDF类;根据用户自定义需求,在新类中重构evaluate函数,完成Hive中自制用户提取信息工具;将Hive中自制用户提取信息工具进行打包,并导入到目标分布式集群中;在把%客户端上配置Hive中自制用户提取信息工具,并使用Hive中自制用户提取信息工具查询用户需要的数据。
[0007]进一步地,编写新类,该新类继承Hive中的用户自定义函数UDF类,包括:编写org.apache, hadoop.hive.ql.UDF,继承 Hive 中的 UDF 类。
[0008]进一步地,将该Hive中自制用户提取信息工具进行打包,并导入到目标分布式集群中,包括J^1Hive中自制用户提取信息工具打包成usr_extract.jar,将usr_extract.jar导入到目标分布式集群中。
[0009]进一步地,在Hive客户端上配置Hive中自制用户提取信息工具,包括:启动Hive客户端,用 add jar/usr/1 ib/usr_extract.jar 命令在 Hive 客户端中添加 usr_extract.jar ;用 CREATE TEMPORARY FUNCT1N usr_extract AS ‘com.hive.udf.UsrExtract,命令创建临时函数。
[0010]进一步地,使用Hive中自制用户提取信息工具查询用户需要的数据,包括:根据临时函数,使用select查询对应的Hive中自制用户提取信息工具,使用Hive中自制用户提取信息工具查询用户需要的数据。
[0011]进一步地,该方法还包括:在用户查询结束后,销毁所述临时函数。
[0012]进一步地,该方法还包括:若在evaluate函数中有重载函数,根据参数个数和/或参数类型调用相应的evaluate查询用户需要的数据。
[0013]一种Hive中自制用户提取信息工具的装置,包括:新类编写模块,用于编写新类,该新类继承Hive中的UDF类;重构函数模块,用于根据用户自定义需求,在新类中重构evaluate函数,完成Hive中自制用户提取信息工具;
[0014]配置模块,用于将Hive中自制用户提取信息工具进行打包,并导入到目标分布式集群中,在Hive客户端上配置Hive中自制用户提取信息工具;查询模块,用于使用Hive中自制用户提取信息工具查询用户需要的数据。
[0015]与现有技术相比,本发明包括:编写新类,该新类继承Hive中的用户自定义函数UDF类;根据用户自定义需求,在新类中重构evaluate函数,完成Hive中自制用户提取信息工具;将Hive中自制用户提取信息工具进行打包,并导入到目标分布式集群中;在把%客户端上配置Hive中自制用户提取信息工具,并使用Hive中自制用户提取信息工具查询用户需要的数据。本发明使用Hive中提供的自定义函数UDF开发符合用户的个性化需求的工具,能够满足用户的个性化查询,并且能够在select中使用,增加了用户查询的便利性。

【专利附图】

【附图说明】
[0016]图1是本发明Hive体系的结构示意图。
[0017]图2是本发明Hive中自制用户提取信息工具的方法的流程示意图。
[0018]图3是本发明Hive中自制用户提取信息工具的装置的结构示意图。

【具体实施方式】
[0019]下面结合附图对本发明进行进一步的详细说明。通过足够详细的描述这些实施示例,使得本领域技术人员能够实践本发明。在不脱离本发明的主旨和范围的情况下,可以对实施做出逻辑的、实现的和其他的改变。
[0020]Hive是建立在Hadoop上的数据仓库基础架构。它提供了一系列的工具,用来进行数据提取、转化、加载,是一种可以存储、查询和分析存储在Hadoop中的大规模数据机制。
[0021]图1是本发明Hive体系的结构示意图。如图1所示,包括:
[0022]用户接口,包括Hive客户端和Web界面,在启动Hive客户端时,用户会连接至Hive Server 并启动 Hive Server。
[0023]Hive将元数据存储在数据库中,如结构化查询语言(MySQL,My Structured QueryLanguage)或Derby中,其中元数据是指hive中存储数据库信息及表信息,Hive中的元数据包括表的名字、表的列和分区及其属性、表的属性、表数据所在的目录等。
[0024]Hive 中的数据存储在 Hadoop 分布式文件系统(HDFS, Hadoop Distributed FileSystem)中,大部分的查询计算是由MapReduce完成的。
[0025]Hive具有可扩充性,可以通过MapReduce框架或者自定义函数,例如用户自定义函数(UDF, User-Defined-Funct1n)、用户自定义聚合函数(UDAF, User-DefinedAggregat1n Funct1n)、用户自定义表产生函数(UDTF, User-Defined Table-GeneratingFunct1n)来自定义符合用户的需求的功能函数,其中UDF是操作单个数据行,产生单个数据行;UDAF是操作多个数据行,产生一个数据行;UDTF是操作一个数据行,产生多个数据行一个表作为输出。
[0026]图2是本发明Hive中自制用户提取信息工具的方法的流程示意图,如图2所示,具体可以包括:
[0027]步骤21,编写新类,该新类继承Hive中的UDF类。
[0028]本发明Hive中自制用户提取信息工具的方法是根据Hive中提供的自定义函数中的m)F开发完成的。
[0029]在本步骤中,编写新类,例如org.apache, hadoop.hive.ql.UDF,继承Hive中的UDF 类。
[0030]步骤22,根据用户自定义需求,在新类中重构evaluate函数,完成Hive中自制用户提取信息工具。
[0031]在本步骤中,该evaluate函数是实现自制用户提取信息的逻辑部分,所以根据用户自定义的个性化需求,在新类中重构evaluate函数,完成Hive中自制用户提取信息工具。
[0032]步骤23,将该Hive中自制用户提取信息工具进行打包,并导入到目标分布式集群中。
[0033]在本步骤中,将该Hive中自制用户提取信息工具打包成usr_extract.jar的形式,将该usr_extract.jar导入到目标分布式集群中。
[0034]步骤24,在Hive客户端上配置Hive中自制用户提取信息工具,并使用Hive中自制用户提取信息工具查询用户需要的数据。
[0035]在本步骤中,启动Hive客户端,在Hive客户端中添加Hive中自制用户提取信息工具,例如用 add jar/usr/1 ib/usr_extract.jar 命令添加 usr_extract.jar 包。
[0036]为Hive中自制用户提取信息工具创建相应的临时函数,该临时函数可以用在select查询中作为对Hive中自制用户提取信息工具函数的调用标识,例如用CREATETEMPORARY FUNCT1N usr_extract AS ‘com.hive.udf.UsrExtract’命令创建临时函数,该临时函数usr_extract可以用在select查询中。
[0037]当用户进行数据查询时,根据临时函数,在Hive客户端使用select查询对应的Hive中自制用户提取信息工具,使用Hive中自制用户提取信息工具查询用户需要的数据。
[0038]在用户查询结束后,可以销毁该临时函数。
[0039]若在evaluate函数中有重载函数,可以根据参数个数、参数类型等调用相应的evaluate操作来满足用户查询操作。
[0040]下面以一具体实例对本发明做进一步的说明,假设在现有的Hive中并没有能够满足用户需求的函数,本具体实例根据用户的特定需求开发自定义函数,其中该具体实例将以根据用户的出生年月日提取用户的生肖和星座为例进行说明。
[0041]首先编写一个新类继承Hive中的UDF类,在新类中重构evaluate函数,,完成Hive中自制用户提取信息工具。将该Hive中自制用户提取信息工具进行打包usr_extract, jar,并导入到目标分布式集群中,具体可以放在/usr/lib文件夹下。启动Hive客户端,用 add jar/usr/1 ib/usr_extract.jar 命令在 Hive 客户端上添加 usr_extract.jar,进行Hive中自制用户提取信息工具在Hive客户端的配置。用CREATE TEMPORARY FUNCT1Nusr_extract AS ‘com.hive.udf.UsrExtract’命令,为Hive中自制用户提取信息工具创建相应的临时函数usr_extract。当用户希望根据出生年月日查询用户的生肖和星座时,根据usr_extract查询对应的Hive中自制用户提取信息工具,使用该Hive中自制用户提取信息工具,提取用户出生的年份及月日信息,根据年份,确定相应的生肖;根据月份和日期,确定相应的星座。
[0042]在使用过程中,根据需求需要在处理的表信息中有用户的出生日期字段,如birthday字段,然后根据该字段查询相应的用户生肖及星座。如在Hive中有student表,用户需要查询每个学生的姓名,生肖及星座情况,这时只需使用SELECT name, usr_extract (birthday) FROM student即可查询用户需要的信息。
[0043]本发明使用Hive中提供的自定义函数UDF开发符合用户的个性化需求的工具,能够满足用户的个性化查询,并且能够在select中使用,增加了用户查询的便利性。
[0044]图3是本发明Hive中自制用户提取信息工具的装置的结构示意图,如图3所示,具体可以包括:
[0045]新类编写模块,用于编写新类,该新类继承Hive中的UDF类;
[0046]重构函数模块,用于根据用户自定义需求,在新类中重构evaluate函数,完成Hive中自制用户提取信息工具;
[0047]配置模块,用于将该Hive中自制用户提取信息工具进行打包,并导入到目标分布式集群中;在把%客户端上配置Hive中自制用户提取信息工具;
[0048]查询模块,用于使用该Hive中自制用户提取信息工具查询用户需要的数据。
[0049]Hive中自制用户提取信息工具的装置是和Hive中自制用户提取信息工具的方法对应的,因此,具体的实现细节可参看Hive中自制用户提取信息工具的方法,在此不赘述。
[0050]本发明使用Hive中提供的自定义函数UDF开发符合用户的个性化需求的工具,能够满足用户的个性化查询,并且能够在select中使用,增加了用户查询的便利性。
[0051]应当理解,虽然本说明书根据实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
[0052]上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用于限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
【权利要求】
1.一种Hive中自制用户提取信息工具的方法,其特征在于,包括: 编写新类,其中新类继承Hive中的用户自定义函数UDF类; 根据用户自定义需求,在新类中重构evaluate函数,完成Hive中自制用户提取信息工亘.N 9 将Hive中自制用户提取信息工具进行打包,并导入到目标分布式集群中; 在Hive客户端上配置Hive中自制用户提取信息工具,并使用Hive中自制用户提取信息工具查询用户需要的数据。
2.根据权利要求1所述的Hive中自制用户提取信息工具的方法,其特征在于,所述编写新类,其中新类继承Hive中的用户自定义函数UDF类,包括:
编写 org.apache, hadoop.hive.ql.UDF,继承 Hive 中的 UDF 类。
3.根据权利要求1或2所述的Hive中自制用户提取信息工具的方法,其特征在于,所述将Hive中自制用户提取信息工具进行打包,并导入到目标分布式集群中,包括: 将Hive中自制用户提取信息工具打包成usr_extract.jar,将usr_extract.jar导入到目标分布式集群中。
4.根据权利要求3所述的Hive中自制用户提取信息工具的方法,其特征在于,所述在Hive客户端上配置Hive中自制用户提取信息工具,包括: 启动Hive客户端,用add jar/usr/1ib/usr_extract.jar命令在Hive客户端中添加usr_extract.jar ;
用 CREATE TEMPORARY FUNCT1N usr_extract AS ‘com.hive.udf.UsrExtract,命令创建临时函数。
5.根据权利要求4所述的Hive中自制用户提取信息工具的方法,其特征在于,所述使用Hive中自制用户提取信息工具查询用户需要的数据,包括: 根据临时函数,使用select查询对应的Hive中自制用户提取信息工具,使用Hive中自制用户提取信息工具查询用户需要的数据。
6.根据权利要求5所述的防止Hive数据倾斜的方法,其特征在于,所述方法还包括:在用户查询结束后,销毁所述临时函数。
7.根据权利要求5所述的防止Hive数据倾斜的方法,其特征在于,所述方法还包括:若在evaluate函数中有重载函数,根据参数个数和/或参数类型调用相应的evaluate查询用户需要的数据。
8.—种Hive中自制用户提取信息工具的装置,其特征在于,包括: 新类编写模块,用于编写新类,该新类继承Hive中的UDF类; 重构函数模块,用于根据用户自定义需求,在新类中重构evaluate函数,完成Hive中自制用户提取信息工具; 配置模块,用于将Hive中自制用户提取信息工具进行打包,并导入到目标分布式集群中,在Hive客户端上配置Hive中自制用户提取信息工具; 查询模块,用于使用Hive中自制用户提取信息工具查询用户需要的数据。
9.根据权利要求8所述的Hive中自制用户提取信息工具的装置,其特征在于,所述新类编写模块,具体用于编写org.apache, hadoop.hive.ql.UDF,继承Hive中的UDF类; 所述配置模块,具体用于将Hive中自制用户提取信息工具打包成usr_extract.jar,将usr_extract.jar导入到目标分布式集群中;启动Hive客户端,用add jar/usr/lib/usr_extract.jar 命令在 Hive 客户端中添加 usr_extract.jar ;用 CREATE TEMPORARYFUNCT1N usr_extract AS ‘com.hive.udf.UsrExtract,命令创建临时函数。
10.根据权利要求9所述的Hive中自制用户提取信息工具的装置,其特征在于,所述查询模块,具体用于根据临时函数,使用select查询对应的Hive中自制用户提取信息工具,使用Hive中自制用户提取信息工具查询用户需要的数据。
【文档编号】G06F17/30GK104239532SQ201410483891
【公开日】2014年12月24日 申请日期:2014年9月19日 优先权日:2014年9月19日
【发明者】刘璧怡, 郭美思, 吴楠 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1