Hive客户端、Hive服务器、Hive执行日志远程监控系统和方法
【专利摘要】本发明涉及执行日志远程监控领域,公开了一种Hive客户端、Hive服务器、Hive执行日志远程监控系统和方法。该服务器包括:存储模块,用于存储执行日志;第一接收模块,用于接收Hive客户端发送的执行日志查询请求;执行日志获取模块,用于根据所述执行日志查询请求,从所述存储模块中获取执行日志;第一发送模块,用于将获取的执行日志发送给所述Hive客户端。该Hive服务器既可以进行远程访问,又可以根据不同的日志参数获取不同的执行日志,避免了在同时获取不同的执行日时造成的冲突,满足了人们远程监控Hive执行日志的需求。
【专利说明】
H i ve客户端、H i ve服务器、H i ve执行日志远程监控系统和方法
技术领域
[0001]本发明涉及执行日志远程监控领域,具体地,涉及一种Hive客户端、Hive服务器、Hive执行日志远程监控系统和方法。
【背景技术】
[0002]Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表格,并提供简单的sql(Structured Query Language)查询功能,可以将sql语句转换为MapReduce任务进行运行。Hive可以提供三种连接方式,即Cli (Iinux的She 11命令行方式)、JDBC/ODBC、WebUI,其中,Cli连接方式可以实时查询执行日志,但由于Cli只提供本地服务器系统的访问方式,每次查询只能在本地服务器系统上进行,且执行不同请求产生的执行日志存放在一起,使得执行日志的存储产生冲突,致使执行日志的查询很不方便,在现实中的使用也较少,而JDBC和WebUI连接方式虽然可以进行远程访问,但却不支持执行日志的查询功能,因此,到目前为止,Hive还不能提供一种既能进行远程访问,又能实时查询执行日志的技术。
[0003]现在很多业务中,Hive的JDBC连接方式已经成为了一种主流的连接方式,人们对于能够随时远程查询执行日志以实现对日志进行实时分析的需求也越来越大,故在JDBC或WebUI的远程访问方式的基础上,开发一种能够支持执行日志监控的技术是一件十分急需的事情。
【发明内容】
[0004]本发明的目的是提供一种Hive客户端、Hive服务器、Hive执行日志远程监控系统和方法,以实现既能进行远程访问Hive系统,又能实时监控Hive系统执行会话请起所产生的执行日志。
[0005]为了实现上述目的,本发明提供了一种Hive服务器,该Hive服务器包括:存储模块,用于存储执行日志;第一接收模块,用于接收Hive客户端发送的执行日志查询请求;执行日志获取模块,用于根据所述执行日志查询请求,从所述存储模块中获取执行日志;第一发送模块,用于将获取的执行日志发送给所述Hive客户端。
[0006]优选地,所述第一接收模块还用于接收所述Hive客户端发送的日志参数;所述执行日志获取模块用于根据所述执行日志查询请求以及所述日志参数,从所述存储模块中获取与所述执行日志查询请求以及所述日志参数对应的执行日志;所述第一发送模块用于将获取的与日志参数对应的执行日志发送给Hive客户端。
[0007]优选地,所述第一接收模块还用于接收所述Hive客户端发送的会话请求;所述Hi ve服务器还包括:执行模块,用于执行所述会话请求,并将执行所述会话请求产生的执行日志发送给所述存储模块;所述存储模块用于存储所述执行日志。
[0008]优选地,所述会话请求中包括日志参数;所述存储模块用于根据所述日志参数分组存储所述执行日志。
[0009]为了实现上述目的,本发明还提供了一种Hive客户端,该Hive客户端包括:第二接收模块,用于接收执行日志查询请求;所述第二发送模块,用于将所述执行日志查询请求发送给Hi ve服务器;第三接收模块,用于接收所述Hi ve服务器根据所述执行日志查询请求发送的执行日志。
[0010]优选地,所述第二接收模块还用于接收日志参数;所述第二发送模块还用于将所述日志参数发送给所述Hive服务器;所述第三接收模块用于接收所述Hi ve服务器发送的与所述执行日志查询请求以及所述日志参数对应的执行日志。
[0011]优选地,所述第二接收模块还用于接收会话请求,所述会话请求中包括所述日志参数;所述第二发送模块还用于将所述会话请求发送给所述Hi ve服务器。
[0012]为了实现上述目的,本发明还提供了一种在Hive服务器端获取执行日志的方法,该方法包括:接收Hi ve客户端发送的执行日志查询请求;根据所述执行日志查询请求,从存储模块中获取执行日志;以及将获取的执行日志发送给所述Hive客户端。
[0013]优选地,所述方法还包括:接收所述Hive客户端发送的日志参数;根据所述执行日志查询请求以及所述日志参数,从所述存储模块中获取与所述执行日志查询请求以及所述日志参数对应的执行日志;以及将获取的与日志参数对应的执行日志发送给Hive客户端。
[0014]优选地,所述方法还包括:接收所述Hive客户端发送的会话请求;执行所述会话请求,并将执行所述会话请求产生的执行日志发送给所述存储模块;所述存储模块存储所述执行日志。
[0015]优选地,所述会话请求中包括日志参数;所述方法还包括:所述存储模块根据所述日志参数分组存储所述执行日志。
[0016]为了实现上述目的,本发明还提供了一种在Hive客户端获取执行日志的方法,该方法包括:接收执行日志查询请求,并根据所述执行日志查询请求获取执行日志查询请求;将所述执行日志查询请求发送给Hive服务器;接收所述Hi ve服务器根据所述执行日志查询请求发送的执行日志。
[0017]优选地,该方法还包括:接收日志参数;将所述日志参数发送给所述Hive服务器;接收所述Hive服务器发送的与所述执行日志查询请求以及所述日志参数对应的执行日志。
[0018]优选地,所述方法还包括:接收会话请求,所述会话请求中包括所述日志参数;将所述会话请求发送给所述Hive服务器。
[0019]本发明还提供了一种包括上述Hive服务器和Hive客户端的Hive执行日志远程监控系统。
[0020]本发明的其它特征和优点将在随后的【具体实施方式】部分予以详细说明。
【附图说明】
[0021]附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的【具体实施方式】一起用于解释本发明,但并不构成对本发明的限制。在附图中:
[0022]图1是根据本发明的一实施例的Hive执行日志远程监控系统;
[0023]图2是根据本发明的一实施例的Hive执行日志远程监控系统;
[0024]图3是根据本发明的一实施例的在Hive客户端获取执行日志的方法的流程图;
[0025]图4是根据本发明的一实施例的在Hive服务器端获取执行日志的方法的流程图;
[0026]图5是根据本发明的一实施例的Hive执行日志远程监控系统。
【具体实施方式】
[0027]以下结合附图对本发明的【具体实施方式】进行详细说明。应当理解的是,此处所描述的【具体实施方式】仅用于说明和解释本发明,并不用于限制本发明。
[0028]本发明提供了一种Hive客户端,该Hive客户端既可利用Hive的JDBC或WebUI的远程访问方式,又可用于远程获取执行日志。该Hive客户端可被应用于如图1所示的根据本发明的一实施例的Hive执行日志远程监控系统中,该系统包括Hive客户端100和Hive服务器,其中,Hive客户端100包括第二接收模块110、第二发送模块120和第三接收模块130。在这一实施例中,Hive客户端具有自动获取执行日志的功能,其自动获取执行日志的过程如下:访问Hi ve的一个或多个应用向Hi ve客户端的第二接收模块110发送执行日志查询请求。该第二接收模块110接收执行日志查询请求,并将执行日志查询请求发送给Hive客户端的第二发送模块120。该第二发送模块120将执行日志查询请求发送给Hive服务器,Hive服务器接收并执行执行日志查询请求以获取执行日志,并将获取的执行日志发送给Hive客户端100的第三接收模块130,由该第三接收模块130将获取的执行日志发送给访问Hive的一个或多个应用。通过本实施例中的Hive客户端,用户只需要通过访问Hive的一个或多个应用向Hive客户端发送执行日志查询请求,就可以通过Hive客户端自动获取执行日志,以实现对执行日志的远程监控。
[0029]在这一实施例中,所述执行日志可为有关会话请求的执行日志,现介绍该执行日志的生成过程。访问Hive的一个或多个应用接收到会话请求后,将会话请求发送给Hive客户端100的第二接收模块110。该第二接收模块110接收并将会话请求发送给Hive客户端100的第二发送模块120,该第二发送模块120将会话请求发送给Hive服务器。Hive服务器接收并执行会话请求,并将执行会话请求产生的执行日志进行存储,为后续获取执行日志以实现对执行日志的远程监控做准备。Hive服务器还将执行会话请求得到的结果发送给Hive客户端的第三接收模块130,由该第三接收模块130将上述结果发送给访问Hive的一个或多个应用。
[0030]优选地,会话请求中包括日志参数。上述Hive客户端100的第二接收模块110和第二发送模块120还可以将包括日志参数的会话请求发送给Hive服务器,使Hive服务器可以根据日志参数将执行会话请求产生的执行日志分组存储,以避免执行不同的会话请求产生的执行日志在存储时造成混乱和冲突。
[0031]优选地,Hive客户端100的第二接收模块110还用于接收日志参数,Hive客户端100的第二发送模块120将该日志参数发送给Hive服务器,Hive客户端100的第三接收模块130接收Hive服务器发送的与上述日志查询请求以及所述日志参数对应的执行日志。通过这一优选方式,Hive客户端100可以根据日志参数分组接收Hive服务器发送的与日志查询请求以及所述日志参数对应的执行日志,避免了Hive客户端100在同时接收不同的会话请求产生的执行日志时造成的混乱和冲突。
[0032]本发明还提供了一种Hive服务器,该Hive服务器既可利用Hive的JDBC或WebUI的远程访问方式,又可用于远程获取执行日志。该Hive服务器可被应用于如图2所示的根据本发明的一实施例的Hive执行日志远程监控系统中,该系统包括Hive客户端和Hive服务器。其中,Hive服务器包括存储模块210、第一接收模块220、执行模块250、执行日志获取模块230和第一发送模块240。在这一实施例中,当需要查询执行会话请求产生的执行日志时,Hive客户端接收执行日志查询请求并向Hive服务器200的第一接收模块220发送执行日志查询请求。该第一接收模块220接收并将执行日志获取请求发送给Hive服务器200的执行日志获取模块230,该执行日志获取模块230接收并根据执行日志查询请求从Hive服务器200的存储模块210中获取执行日志,并将获取的执行日志发送给Hive服务器200的第一发送模块240,由该第一发送模块240将获取的执行日志发送给Hive客户端。通过本实施例中的Hive服务器200,可以根据Hive客户端发送的执行日志查询请求自动获取执行日志,并将获取的执行日志自动发送给Hive客户端,以实现对执行日志的远程获取。
[0033]在这一实施例中,有关会话请求的执行日志的生成过程如下:Hive客户端接收会话请求并向Hive服务器的第一接收模块发送会话请求,该第一接收模块接收并将会话请求发送给Hive服务器的执行模块,该执行模块执行会话请求并将执行会话请求产生的执行日志发送给Hive服务器的存储模块,该存储模块存储接收到的执行日志。Hive服务器的执行模块在执行完会话请求后,还将执行会话请求得到的结果发送给Hive服务器的第一发送模块,由该第一发送模块将上述结果发送给Hi ve客户端。通过本实施例中的Hi ve服务器,可以将执行会话请求产生的执行日志自动进行存储,用户在需要查询执行日志时,可以随时从Hive服务器中获取。需要注意的是,执行日志的存储可以是暂时存储,在Hive客户端获取执行日志后,可将Hive服务器中对应的执行日志删除,以节省Hive服务器中的存储模块的存储资源。
[0034]优选地,会话请求中包括日志参数,Hive服务器中的存储模块可根据日志参数将执行日志进行分组存储,以避免不同会话请求产生的执行日志在存储时造成混乱和冲突。该日志参数还可作为后续获取执行日志的根据。
[0035]优选地,Hive服务器中的第一接收模块还可以接收Hive客户端发送的日志参数,Hive服务器中的执行日志获取模块可根据执行日志查询请求从Hive服务器中的存储模块中获取与所述执行日志查询请求及日志参数对应的执行日志,以避免不同会话请求产生的执行日志在获取时造成的混乱和冲突,为执行日志的查询提供了便利。
[0036]在基于Hive的JDBC或WebUI的远程访问方式的基础上,本发明还提供了一种在Hive客户端获取执行日志的方法。图3是根据本发明的一实施例的在Hive客户端获取执行日志的方法的流程图,该方法包括:
[0037]S1、接收执行日志查询请求。Hive客户端中的第二接收模块接收访问Hive的一个或多个应用发送的执行日志查询请求,并将该执行日志查询请求发送给Hive客户端中的第二发送模块。
[0038]S2、将执行日志查询请求发送给Hive服务器。Hive客户端中的第二发送模块将执行日志查询请求发送给Hive服务器。
[0039]S3、接收Hive服务器根据执行日志查询请求发送的执行日志。Hive服务器将根据执行日志查询请求获取的执行日志发送给Hive客户端的第三接收模块,Hive客户端的第三接收模块接收Hive服务器发送的执行日志。
[0040]通过这一方法,用户只需要通过访问Hive的一个或多个应用向Hive客户端发送执行日志查询请求,就可以通过Hive客户端自动获取执行日志,以实现对执行日志的远程监控。
[0041 ]在这一实施例中,所述执行日志可为有关会话请求的执行日志,现介绍该执行日志可通过以下步骤而被生成:I )Hive客户端中的第二接收模块接收访问Hive的一个或多个应用发送的会话请求,并将会话请求发送给Hive客户端中的第二发送模块;2)Hive客户端中的第二发送模块将接收到的会话请求发送给Hive服务器;3)Hive服务器中的第一接收模块接收Hive客户端发送的会话请求,并将会话请求发送给Hive服务器中的执行模块;4)Hive服务器中的执行模块执行接收到的会话请求,并将执行会话请求产生的执行日志发送给Hive服务器中的存储模块;以及5)Hive服务器中的存储模块存储接收到的执行日志。
[0042]优选地,会话请求中包括日志参数,可通过步骤5)将执行日志根据日志参数进行分组存储,以避免不同会话请求产生的执行日志在存储时造成混乱和冲突。该日志参数还可作为后续获取执行日志的根据。
[0043]优选地,Hive客户端中的第二接收模块接收的会话请求中包括日志参数。Hive客户端将该日志参数发送给Hive服务器,以使Hive服务器利用该日志参数分组存储执行日志,以避免不同会话请求产生的执行日志在存储时造成混乱和冲突。
[0044]优选地,Hive客户端中的第二接收模块还用于接收日志参数,Hive客户端的第二发送模块将该日志参数发送给Hive服务器,Hive客户端的第三接收模块接收Hive服务器发送的与上述执行日志查询请求及日志参数对应的执行日志。通过上述的方法,Hive客户端可以根据日志参数分组接收Hive服务器发送的与上述执行日志查询请求及日志参数对应的执行日志,避免了Hive客户端在同时接收不同的会话请求产生的执行日志时造成的混乱和冲突。
[0045]在基于Hi ve的JDBC或WebUI的远程访问方式的基础上,本发明还提供了一种在Hi V服务器端获取执行日志的方法。图4是根据本发明的一实施例的在Hive服务器端获取执行日志的方法的流程图,该方法包括:
[0046]S1、接收Hive客户端发送的执行日志查询请求。Hive服务器中的第一接收模块接收Hive客户端发送的执行日志查询请求,并将执行日志查询请求发送给Hive服务器中的执行日志获取模块。
[0047]S2、根据执行日志查询请求,从存储模块中获取执行日志。Hive服务器中的执行日志获取模块接收执行日志查询请求,并根据执行日志查询请求从Hi ve服务器中的存储模块中获取执行日志。
[0048]S3、将获取的执行日志发送给Hive客户端。Hive服务器中的执行日志获取模块将获取的执行日志发送给Hive服务器中的第一发送模块,由Hive服务器中的第一发送模块将执行日志发送给Hive客户端。
[0049]通本实施例中的步骤S1-S3,可以根据Hive客户端发送的执行日志查询请求自动获取执行日志,并将获取的执行日志自动发送给Hive客户端,以实现对执行日志的远程获取。
[°°50]优选地,在步骤SI中,Hive服务器中的第一接收模块还可以接收Hive客户端发送的日志参数。在步骤S2中,Hive服务器中的执行日志获取模块可根据执行日志查询请求以及日志参数从Hive服务器中的存储模块中获取与所述执行日志查询请求以及日志参数对应的执行日志。在步骤S3中,Hive服务器将获取的与所述执行日志查询请求以及日志参数对应的执行日志经由Hive服务器的第一发模块发送给Hive客户端,以避免不同会话请求产生的执行日志在获取时造成的混乱和冲突,为执行日志的查询提供了便利。
[0051]本发明还提供了一种Hive执行日志远程监控系统,图5是根据本发明的一实施例的Hive执行日志远程监控系统,该系统包括Hive客户端100和Hive服务器200,其中,Hive客户端100包括第二接收模块110、第二发送模块120和第三接收模块130,Hive服务器200包括存储模块210、第一接收模块220、执行模块250、执行日志获取模块230和第一发送模块240。在这一实施例中,访问Hive的一个或多个应用接收到会话请求(其中,会话请求中包括日志参数)后,将会话请求发送给第Hive客户端100的第二接收模块110,该第二接收模块110接收并将会话请求发送给Hive客户端100的第二发送模块120,该第二发送模块120将会话请求发送给Hive服务器200的第一接收模块220发送会话请求,该第一接收模块220接收并将会话请求发送给Hive服务器200的执行模块250,该执行模块250执行会话请求并将执行会话请求产生的执行日志发送给Hive服务器200的存储模块210,该存储模块210根据会话请求中的日志参数分组存储接收到的执行日志。Hive服务器200的执行模块在执行完会话请求后,还将执行会话请求得到的结果发送给Hive服务器200的第一发送模块240,由该第一发送模块240将上述结果发送给Hive客户端100。通过本实施例中的Hive执行日志远程监控系统,可自动对会话请求产生的执行日志进行分组存储,避免了不同会话请求产生的执行日志在存储时造成的混乱和冲突,同时也具有了用户随时获取执行日志的功能。
[0052]在这一实施例中,当需要查询执行会话请求产生的执行日志时,可向访问Hive的一个或多个应用发送执行日志查询请求和日志参数,访问Hive的一个或多个应用将执行日志查询请求和日志参数发送给Hive客户端的第二接收模块,该第二接收模块接收执行日志查询请求及日志参数,并将该执行日志查询请求和日志参数发送给Hive客户端的第二发送模块,该第二发送模块将执行日志查询请求和日志参数发送给Hive服务器的第一接收模块,该第一接收模块接收并将执行日志查询请求和日志参数发送给Hive服务器的执行日志获取模块,该执行日志获取模块接收并根据执行日志查询请求和日志参数从Hive服务器的存储模块中获取执行日志,并将获取的与执行日志查询请求和日志参数对应的执行日志发送给Hive服务器的第一发送模块,由该第一发送模块将获取的与执行日志查询请求和日志参数对应的执行日志发送给Hive客户端的第三接收模块,由该第三接收模块将获取的与日志参数对应的执行日志发送给访问Hive的一个或多个应用。通过本实施例中的Hive执行日志远程监控系统,可自动获取以日志参数对应的执行日志,实现了对执行日志的远程监控,同时也避免了在同时接收不同的会话请求产生的执行日志时造成的混乱和冲突,为执行日志的查询带来了便利。
[0053]需要注意的是,存储模块可为文件系统、HBaSe、RediS等一切可以使用的存储媒介,日志参数需要根据存储模块的类型而定,例如,若存储模块为Hive系统的本地文件系统,则日志参数可为存储执行日志的文件名和执行日志的存储路径。
[0054]以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
[0055]另外需要说明的是,在上述【具体实施方式】中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
[0056]此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
【主权项】
1.一种Hive服务器,其特征在于,包括: 存储模块,用于存储执行日志; 第一接收模块,用于接收Hive客户端发送的执行日志查询请求; 执行日志获取模块,用于根据所述执行日志查询请求,从所述存储模块中获取执行日志; 第一发送模块,用于将获取的执行日志发送给所述Hive客户端。2.根据权利要求1所述的Hive服务器,其特征在于, 所述第一接收模块还用于接收所述Hive客户端发送的日志参数; 所述执行日志获取模块用于根据所述执行日志查询请求以及所述日志参数,从所述存储模块中获取与所述执行日志查询请求以及所述日志参数对应的执行日志; 所述第一发送模块用于将获取的与所述日志参数对应的执行日志发送给Hive客户端。3.根据权利要求1所述的Hive服务器,其特征在于, 所述第一接收模块还用于接收所述Hi ve客户端发送的会话请求; 所述Hi ve服务器还包括:执行模块,用于执行所述会话请求,并将执行所述会话请求产生的执行日志发送给所述存储模块,以便该存储模块存储所述执行日志。4.根据权利要求3所述的Hive服务器,其特征在于, 所述会话请求中包括日志参数; 所述存储模块用于根据所述日志参数分组存储所述执行日志。5.一种Hive客户端,其特征在于,包括: 第二接收模块,用于接收执行日志查询请求; 第二发送模块,用于将所述执行日志查询请求发送给Hive服务器; 第三接收模块,用于接收所述Hi ve服务器根据所述执行日志查询请求发送的执行日V 1、1、O6.根据权利要求5所述的Hive客户端,其特征在于, 所述第二接收模块还用于接收日志参数; 所述第二发送模块还用于将所述日志参数发送给所述Hi ve服务器; 所述第三接收模块用于接收所述Hive服务器发送的与所述执行日志查询请求以及所述日志参数对应的执行日志。7.根据权利要求5所述的Hive客户端,其特征在于, 所述第二接收模块还用于接收会话请求,所述会话请求中包括所述日志参数; 所述第二发送模块还用于将所述会话请求发送给所述Hive服务器。8.一种在Hi ve服务器端获取执行日志的方法,其特征在于,该方法包括: 接收Hive客户端发送的执行日志查询请求; 根据所述执行日志查询请求,从存储模块中获取执行日志; 将获取的执行日志发送给所述Hive客户端。9.根据权利要求8所述的方法,其特征在于,所述方法还包括: 接收所述Hive客户端发送的日志参数; 根据所述执行日志查询请求以及所述日志参数,从所述存储模块中获取与所述执行日志查询请求以及所述日志参数对应的执行日志; 将获取的与日志参数对应的执行日志发送给Hive客户端。10.根据权利要求8所述的方法,其特征在于,所述方法还包括: 接收所述Hive客户端发送的会话请求; 执行所述会话请求,并将执行所述会话请求产生的执行日志发送给所述存储模块; 所述存储模块存储所述执行日志。11.根据权利要求10所述的方法,其特征在于, 所述会话请求中包括日志参数; 所述方法还包括:所述存储模块根据所述日志参数分组存储所述执行日志。12.一种在Hive客户端获取执行日志的方法,其特征在于,包括: 接收执行日志查询请求; 将所述执行日志查询请求发送给Hive服务器; 接收所述Hive服务器根据所述执行日志查询请求发送的执行日志。13.根据权利要求12所述的方法,其特征在于,所述方法还包括: 接收日志参数; 将所述日志参数发送给所述Hi ve服务器; 接收所述Hive服务器发送的与所述执行日志查询请求以及所述日志参数对应的执行曰志。14.根据权利要求12所述的方法,其特征在于,所述方法还包括: 接收会话请求,所述会话请求中包括所述日志参数; 将所述会话请求发送给所述Hi ve服务器。15.—种Hive执行日志远程监控系统,其特征在于,该系统包括权利要求1-4中任一项所述的Hive服务器和权利要求5-7中任一项所述的Hive客户端。
【文档编号】H04L12/24GK105897834SQ201510886268
【公开日】2016年8月24日
【申请日】2015年12月4日
【发明人】刘宏斌, 国铁龙
【申请人】乐视网信息技术(北京)股份有限公司