本发明公开一种方法及系统,涉及数据的访问存储技术领域,具体地说是一种为数据中心提供多租户持久化任务记录的方法及系统。
背景技术:
通常,数据处理中心可以通过自动缩放降低成本,比如集群可以通过yarn或presto来管理并运行spark,tez,map-reduce,presto-query等任务的,并根据工作量需求和成本考虑,在不工作一段时间后自动关闭。节省成本的同时,却产生容易无法根据日志排查错误的问题,例如,一个正在运行的hadoop集群因为一段时间内的不工作而关闭,jobhistoryserver可能不再运行,导致用户无法从中得到能帮助排错的日志。
技术实现要素:
本发明针对现有技术的问题,提供一种为数据中心提供多租户持久化任务记录的方法及系统,在数据中心被自动关闭的情况下,依然可以查询日志或历史记录,在一些情况下,系统包括可以被配置存储任务记录,配置以及集群日志文件的持久化存储设备(persistence);被配置用于响应日志或历史记录请求的结束任务的历史记录服务器(terminatedjobhistoryserver);以及一个提供可以转发日志请求的代理层的集群代理服务器(clusterproxy)。
本发明提出的具体方案是:
一种为数据中心提供多租户持久化任务记录的系统,包括持久化存储设备、历史记录服务器及集群代理服务器,
持久化存储设备对短暂运行集群关联的任务历史和/或日志文件进行持久化存储,
集群代理服务器接收用户与任务有关信息的请求,判断所述的请求是否与终止的集群上处理或运行过的任务有关;若有关则将用户的请求定向到相应历史记录服务器,
历史记录服务器通过访问持久化存储设备对用户提供用户请求的与任务有关信息的任务历史和/或日志文件信息。
所述的系统中所述集群代理服务器将用户的请求定向到相应历史记录服务器前,对用户的请求执行授权操作。
所述的系统中集群代理服务器通过对比用户请求随附的服务器主机名称信息与集群节点信息完成用户请求的授权。
所述的系统中所述集群代理服务器对已被授权的用户请求执行认证操作,再将用户的请求定向到相应历史记录服务器。
所述的系统中所述集群代理服务器通过cookies来确定用户的请求是否来自一个已被授权的用户。
所述的系统中集群代理服务器具有图形用户界面。
所述的系统中集群代理服务器提供接口层,将终止的集群上处理或运行过的任务有关的用户的请求定向到相应历史记录服务器。
所述的系统中集群代理服务器解析历史记录服务器使用的任何链接,确认链接处于可用格式并参考存储在持久化存储设备中的参考数据。
一种为数据中心提供多租户持久化任务记录的方法:将短暂运行集群关联的任务历史和/或日志文件保存在持久存储设备中,
集群代理服务器接收用户与任务有关信息的请求,判断所述的请求是否与终止的集群上处理或运行过的任务有关;若有关则将用户的请求定向到相应历史记录服务器,
历史记录服务器通过访问持久化存储设备对用户提供用户请求的与任务有关信息的任务历史和/或日志文件信息。
所述的方法中利用集群代理服务器将用户的请求定向到相应历史记录服务器前执行授权操作;
对已被授权的用户请求执行认证操作。
本发明的有益之处是:
本发明提供一种为数据中心提供多租户持久化任务记录的系统包括持久化存储设备、历史记录服务器及集群代理服务器,通过持久化存储设备对短暂运行集群关联的任务历史和/或日志文件进行持久化存储,集群代理服务器接收用户与任务有关信息的请求,判断所述的请求是否与终止的集群上处理或运行过的任务有关;若有关则将用户的请求定向到相应历史记录服务器,历史记录服务器通过访问持久化存储设备对用户提供用户请求的与任务有关信息的任务历史和/或日志文件信息,能够在数据中心关闭的情况下,依然可以查询日志或历史记录,解决了用户有效访问自动缩放的大数据处理中心时日志文件和任务历史记录容易保存不及时的问题,便于用户对过去执行过的作业的排错。
附图说明
图1本发明系统应用框架示意图;
图2是本发明方法流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种为数据中心提供多租户持久化任务记录的系统,包括持久化存储设备、历史记录服务器及集群代理服务器,
持久化存储设备对短暂运行集群关联的任务历史和/或日志文件进行持久化存储,
集群代理服务器接收用户与任务有关信息的请求,判断所述的请求是否与终止的集群上处理或运行过的任务有关;若有关则将用户的请求定向到相应历史记录服务器,
历史记录服务器通过访问持久化存储设备对用户提供用户请求的与任务有关信息的任务历史和/或日志文件信息。
具体实施时,利用本发明系统进行数据中心多租户持久化任务记录时,系统可针对一个或多个运行中的集群,系统的持久化存储设备(persistence),可为云存储设备,如amazons3或其他可进行持久化存储的设备,系统的历史记录服务器(terminatedjobhistoryserver)简称tjhs,系统的集群代理服务器(clusterproxy),存在代理层及相应的接口层,接口层可基于特定作业和集群将请求重定向到正确的服务器等,集群代理服务器可以具有图形用户界面(gui),可以解析历史记录服务器使用的任何链接,确认链接处于可用格式并参考存储在持久化存储设备中的参考数据。
在运行过程中,clusterproxy接收来自用户对于日志和任务记录的请求,该请求可以是web服务器发送的,
clusterproxy先通过查询相应数据库对用户的请求认证授权,认证通过后,再向集群发送请求,判断所述的请求是否与终止的集群上处理或运行过的任务有关;如果有关,则向tjhs发送请求以获取停止集群的日志和任务记录,tjhs此时会从持久化存储设备中取回日志和任务记录以响应来自clusterproxy的请求,运行中的集群会定期将日志和任务记录持久化到持久化存储设备中。
在上述过程中,clusterproxy对用户的请求的授权,通过对比请求随附的主机名称信息与数据库中保存的节点信息来完成,而认证过程是基于cookies来确定请求是否来自一个被授权的用户,同时数据库中还可以记录已调配的机器的状态以及每个机器所属的集群的状态,如果主机名称信息对应一个活跃的集群,clusterproxy可以将用户的请求路由到该集群的相应的存储设备,如果主机名称信息对应于终止的集群,clusterproxy通过持久化存储设备位置和必需的凭证的信息检索tjhs,判断所述的请求是否与终止的集群上处理或运行过的任务有关,有关则该用户的请求路由到tjhs,以获取停止集群的日志和任务记录。
本发明系统中,不限制持久化存储设备的形式,比如map-reduce的jobhistoryserver将历史记录和配置文件存储在hdfs中,由mapreduce.jobhistory.done-dir属性配置的。同样,开启日志集成功能后,yarn会将容器的日志存储在hdfs上。如果是其他的yarn应用,比如tez,任务记录和相关的配置可能会存储在嵌入式的数据库,例如leveldb中,在yarn.nodemanager.remote-app-log-dir中配置。为了能使这些任务记录、配置即使在集群停止之后依然可用,这些信息可以存放在某些存储设备中,例如amazons3。我们可以将以上属性配置为用户的存储设备地址。
而tjhs也是持久性的,多租户的,可以是系统范围的,并且可以维护各种系统和集群中不同的用户/客户端的作业记录,对于每种作业,可以有一个map-reduce的tjhs,一个spark的tjhs,或者一个结束应用的时间线服务器等,响应来自拥有不同存储地址和凭据的不同用户的请求。比如一个标准的hadoop任务记录服务器可以被用来当作map-reduce的tjhs,并且可以通过将其扩展成可接受yarn.nodemanager.remote-app-log-dir,mapreduce.jobhistory.done-dir以及存储设备凭据,以响应不同的请求,为不同值而变成多租户的。一个相同的历史记录服务器也可以作为一个结束应用的时间线服务器,可以通过将其扩展成可接受类似的参数为不同值而变成多租户的,比如leveldb的存储地址。因此,tjhs现在可以在大数据处理中心作为内部服务运行。
本发明还提供与上述系统相应的一种为数据中心提供多租户持久化任务记录的方法:将短暂运行集群关联的任务历史和/或日志文件保存在持久存储设备中,
集群代理服务器接收用户与任务有关信息的请求,判断所述的请求是否与终止的集群上处理或运行过的任务有关;若有关则将用户的请求定向到相应历史记录服务器,
历史记录服务器通过访问持久化存储设备对用户提供用户请求的与任务有关信息的任务历史和/或日志文件信息。
仍利用持久化存储设备(persistence)、历史记录服务器(terminatedjobhistoryserver)简称tjhs以及集群代理服务器(clusterproxy)进行数据中心多租户持久化任务记录,其中clusterproxy接收来自用户对于日志和任务记录的请求,该请求可以是web服务器发送的,
clusterproxy先通过查询相应数据库对用户的请求认证授权,认证通过后,再向集群发送请求,判断所述的请求是否与终止的集群上处理或运行过的任务有关;如果有关,则向tjhs发送请求以获取停止集群的日志和任务记录,tjhs此时会从持久化存储设备中取回日志和任务记录以响应来自clusterproxy的请求,运行中的集群会定期将日志和任务记录持久化到持久化存储设备中。
在上述过程中,clusterproxy对用户的请求的授权,通过对比请求随附的主机名称信息与数据库中保存的节点信息来完成,而认证过程是基于cookies来确定请求是否来自一个被授权的用户,同时数据库中还可以记录已调配的机器的状态以及每个机器所属的集群的状态,如果主机名称信息对应一个活跃的集群,clusterproxy可以将用户的请求路由到该集群的相应的存储设备,如果主机名称信息对应于终止的集群,clusterproxy通过持久化存储设备位置和必需的凭证的信息检索tjhs,判断所述的请求是否与终止的集群上处理或运行过的任务有关,有关则该用户的请求路由到tjhs,以获取停止集群的日志和任务记录。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
1.一种为数据中心提供多租户持久化任务记录的系统,其特征是包括持久化存储设备、历史记录服务器及集群代理服务器,
持久化存储设备对短暂运行集群关联的任务历史和/或日志文件进行持久化存储,
集群代理服务器接收用户与任务有关信息的请求,判断所述的请求是否与终止的集群上处理或运行过的任务有关;若有关则将用户的请求定向到相应历史记录服务器,
历史记录服务器通过访问持久化存储设备对用户提供用户请求的与任务有关信息的任务历史和/或日志文件信息。
2.根据权利要求1所述的系统,其特征是所述集群代理服务器将用户的请求定向到相应历史记录服务器前,对用户的请求执行授权操作。
3.根据权利要求2所述的系统,其特征是集群代理服务器通过对比用户请求随附的服务器主机名称信息与集群节点信息完成用户请求的授权。
4.根据权利要求2或3所述的系统,其特征是所述集群代理服务器对已被授权的用户请求执行认证操作,再将用户的请求定向到相应历史记录服务器。
5.根据权利要求4所述的系统,其特征是所述集群代理服务器通过cookies来确定用户的请求是否来自一个已被授权的用户。
6.根据权利要求1或5所述的系统,其特征是集群代理服务器具有图形用户界面。
7.根据权利要6所述的系统,其特征是集群代理服务器提供接口层,将终止的集群上处理或运行过的任务有关的用户的请求定向到相应历史记录服务器。
8.根据权利要1或7所述的系统,其特征是集群代理服务器解析历史记录服务器使用的任何链接,确认链接处于可用格式并参考存储在持久化存储设备中的参考数据。
9.一种为数据中心提供多租户持久化任务记录的方法,其特征是将短暂运行集群关联的任务历史和/或日志文件保存在持久存储设备中,
集群代理服务器接收用户与任务有关信息的请求,判断所述的请求是否与终止的集群上处理或运行过的任务有关;若有关则将用户的请求定向到相应历史记录服务器,
历史记录服务器通过访问持久化存储设备对用户提供用户请求的与任务有关信息的任务历史和/或日志文件信息。
10.根据权利要9所述的方法,其特征是利用集群代理服务器将用户的请求定向到相应历史记录服务器前执行授权操作;
对已被授权的用户请求执行认证操作。
技术总结