基于K8S的flink任务日志的处理方法及计算机设备与流程

文档序号:29231933发布日期:2022-03-12 13:48阅读:787来源:国知局
基于K8S的flink任务日志的处理方法及计算机设备与流程
基于k8s的flink任务日志的处理方法及计算机设备
技术领域
1.本技术涉及数据平台技术领域,特别涉及一种基于k8s的flink任务日志的处理方法、基于k8s的flink任务日志的处理装置、计算机设备及计算机可读存储介质。


背景技术:

2.目前一种大数据离线计算平台设计是采用flink去实现多种数据源的抽取、转换和存储,底层是基于kubernetes(k8s)集群去运行flink任务,但是k8s并没有提供容器日志的收集与展示,而且k8s任务运行成功和失败后,pod将会很快被回收,任务日志就会立即被清理,导致无法进行日志的查看,这给任务运行状态及任务问题的定位带来困难。


技术实现要素:

3.为解决上述背景技术中的至少一个技术问题,本技术实施方式提供了一种基于k8s的flink任务日志的处理方法、基于k8s的flink任务日志的处理装置、计算机设备及计算机可读存储介质。
4.本技术实施方式的基于k8s的flink任务日志的处理方法包括:
5.为flink任务角色关联任务标识;
6.监听所述flink任务对应的k8s容器的状态信息,存储所述flink任务角色的任务标识;收集并存储所述flink任务在k8s容器中的日志信息;及
7.查询与任务标识关联的flink任务角色的日志信息。
8.在某些实施方式中,所述收集并存储所述flink任务在k8s容器中的日志信息,包括:
9.创建基于k8s的fluented应用;
10.在k8s的任一节点均启动fluented应用,并收集k8s容器的运行日志;及
11.将收集的k8s容器的运行日志存储到elasticsearch。
12.在某些实施方式中,所述创建基于k8s的fluented应用,包括:
13.采集源source配置;
14.增加k8s元数据记录的过滤器配置;及
15.增加fluented应用采集的数据输出配置。
16.在某些实施方式中,所述采集源source配置,包括为flink任务对应的k8s container的日志文件关联采集标记;
17.所述k8s元数据记录的过滤器配置,包括记录关联有采集标记的k8s container的日志文件。
18.在某些实施方式中,所述查询与任务标识关联的flink任务角色的日志信息,包括:
19.构建查询条件,所述查询条件包括任务标识;
20.调用elasticsearch引擎查询与所述任务标识关联的flink任务角色的日志信息;

21.对日志信息进行拼装并展示。
22.在某些实施方式中,所述对日志信息进行拼装并展示,包括:
23.判断查询条件是否携带滚屏信息;
24.若是,根据滚屏信息查询日志信息的下一页数据并展示;及
25.若否,配置数据展示大小,并依据数据展示大小展示日志信息。
26.在某些实施方式中,所述flink任务日志的处理方法还包括:
27.为flink任务定义预定的namespace;及
28.设置k8s pod的命名规则。
29.本技术实施方式的基于k8s的flink任务日志的处理装置包括:
30.任务提交模块,用于为flink任务角色关联任务标识;
31.任务监听模块,用于监听所述flink任务对应的k8s容器的状态信息,存储所述flink任务角色的任务标识;
32.日志采集模块,用于收集并存储所述flink任务在k8s容器中的日志信息;及
33.日志展示模块,用于查询与任务标识关联的flink任务角色的日志信息。
34.本技术实施方式的计算机设备包括:一个或多个处理器;存储器;及一个或多个计算机程序,其中,所述一个或多个计算机程序被存储在所述存储器中,并被配置为由所述一个或多个处理器执行,所述一个或多个计算程序配置用于:执行本技术任一实施方式所述的基于k8s的flink任务日志的处理方法。
35.本技术实施方式的非易失性计算机可读存储介质存储有计算机程序,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行本技术任一实施方式所述的基于k8s的flink任务日志的处理方法。
36.本技术实施方式的基于k8s的flink任务日志的处理方法、基于k8s的flink任务日志的处理装置、计算机设备及计算机可读存储介质中,实现了k8s的flink任务的日志信息收集、存储及展示,使用户能够通过一个统一的flink大数据计算平台完成flink任务的提交、状态更新、日志信息的查看,方便定位k8s的flink任务的运行问题,提高定位问题的效率。
37.本技术实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
38.本技术的上述和/或附加的方面和优点可以从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
39.图1为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图;
40.图2为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图;
41.图3为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图;
42.图4为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图;
43.图5为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图;
44.图6为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图;
45.图7为本技术某些实施方式的基于k8s的flink任务日志的处理装置的模块示意图;
46.图8为本技术某些实施方式的计算机可读存储介质与处理器通信的示意图;
47.图9为本技术某些实施方式的计算机设备的示意图。
具体实施方式
48.下面详细描述本技术的实施方式,所述实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本技术的实施方式,而不能理解为对本技术的实施方式的限制。
49.通过调研业界对k8s日志收集主要提供了三种方式:1.部署k8s daemonset对象,每个节点上运行一个agent来收集日志;2.在pod中包含一个sidecar容器来收集应用日志;3.在应用程序中将日志信息推送到采集后端。
50.上述的第二种方式会存在日志容器和宿主机,会存在双份日志,第三种方式需要应用程序侵入性的修改代码,日志需要发送到后端,会存在资源损耗,并且k8s集群内没法去访问应用日志。目前大部分k8s应用日志收集方案都会基于第一种进行改造,典型的方法是采用elk(elasticsearch filebeat、kibana)、efl(elasticsearch filebeat、logstash)等方式,这些方法在flink on k8s特征平台日志采集展示存在如下不足:
51.1.需要依赖三个以上的服务进行日志收集和展示;
52.2.并没有提供一种针对flink不同角色的pod回收的方式。
53.3.没有提供方法在平台进行任务关联以及对应任务日志提取和展示的方法。
54.本技术实施方式的基于k8s的flink任务日志的处理方法、基于k8s的flink任务日志的处理装置、计算机设备及计算机可读存储介质能够用于解决上述的至少一个技术问题。
55.请参阅图1,图1为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图,本技术实施方式的flink任务日志的处理方法包括步骤:
56.01:为flink任务角色关联任务标识;
57.02:监听flink任务对应的k8s容器的状态信息,存储flink任务角色的任务标识;
58.03:收集并存储flink任务在k8s容器中的日志信息;及
59.04:查询与任务标识关联的flink任务角色的日志信息。
60.本技术实施方式的基于k8s的flink任务日志的处理方法,实现了k8s的flink任务的日志信息收集、存储及展示,使用户能够通过一个统一的flink大数据计算平台完成flink任务的提交、状态更新、日志信息的查看,方便定位k8s的flink任务的运行问题,提高
定位问题的效率。
61.具体地,在提交flink任务的过程中,在启动flink driver任务时添加相应的任务标识,然后启动的jobmanager和taskmanager会关联对应的flink driver任务。该任务标识会包括角色信息,角色信息会体现flink任务是属于jobmanager还是taskmanager,同时任务标识还包括flink任务的id信息,以表明flink任务是属于后端提交的哪个任务,任务标识是flink任务的唯一标识,以便用来后续查询日志作息。
62.后续程序会查询k8s去获取提交的任务,会根据任务标识中携带的角色信息,判断flink任务属于什么角色的任务,根据id信息以记录这个任务的状态,后面查询日志的时候可以根据这下任务标识去进行匹配。
63.在步骤02中,后端编写基于k8s informer的逻辑,捕获flink任务k8s容器的变化信息,例如,新增、删除、状态变化等信息,存储每个flink任务对应角色(指组成一个flink任务的dirver、jobmanager和多个taskmanager这几个角色)的容器id信息、元数据信息,以便后续做日志的关联查询。
64.请参阅图2,图2为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图,步骤03:收集并存储flink任务在k8s容器中的日志信息,包括步骤:
65.031:创建基于k8s的fluented应用;
66.032:在k8s的任一节点均启动fluented应用,并收集k8s容器的运行日志;及
67.033:将收集的k8s容器的运行日志存储到elasticsearch。
68.本实施方式中,通过k8s部署的fluentd daemonset对象完成k8s集群日志信息的收集。应用的日志信息在k8s集群中只保存了一份,节省了k8s集群磁盘空间,同时,只需要部署fluented及elasticsearch,而不需要部署elk、efl等组件。另外,日志信息的收集与业务逻辑相分离,不需要修改开源组件k8s和flink而且还不需要修改flink上层应用,减少了开发和维护成本。
69.请参阅图3,图3为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图,步骤031:创建基于k8s的fluented应用,包括步骤:
70.0311:采集源source配置;
71.0312:增加k8s元数据记录的过滤器配置;及
72.0313:增加fluented应用采集的数据输出配置。
73.具体地,采集源source配置,或者说为fluented应用配置k8s rbac规则,可以包括为flink任务对应的k8s container的日志文件关联采集标记,例如,根据正则匹配到对应属于特征平台flink任务的对应k8s container指(flink任务运行的容器日志)的日志文件,并打上采集标记,例如:flink_log。
74.例如,配置实现deamonset元信息采集、flink应用运行镜像、资源请求及限制、日志目录挂载、配置文件挂载等。
75.增加k8s元数据记录的过滤器配置,可以包括记录关联有采集标记的k8s container的日志文件,例如过滤器匹配关联有采集标记(例如上述的flink_log)的日志文件,进行k8s容器元数据的记录,以记录容器运行的基础信息。
76.增加fluented应用采集的数据输出配置,主要包括配置日志数据存储到elasticsearch(es),例如,es服务器信息配置、缓冲刷新频率配置等。
77.请参阅图4,图4为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图,步骤04:查询与任务标识关联的flink任务角色的日志信息,包括步骤:
78.041:构建查询条件,查询条件包括任务标识;
79.042:调用elasticsearch引擎查询与任务标识关联的flink任务角色的日志信息;及
80.043:对日志信息进行拼装并展示。
81.构建查询条件,其中,查询条件中包括任务标识,依据该任务标识可以通过调用e1asticsearch引擎查询任务标识对应的角色的日志信息,通过将日志信息进行拼装和展示,便于开发者查看运行的情况并发现问题。当然,当elasticsearch中未存储有任务标识对应的日志信息时,则返回结束的结果。
82.请参阅图5,图5为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图,步骤043:对日志信息进行拼装并展示,包括步骤:
83.0431:判断查询条件是否携带滚屏信息;
84.0432:若是,根据滚屏信息查询日志信息的下一页数据并展示;及
85.0433:若否,配置数据展示大小,并依据数据展示大小展示日志信息。
86.具体地,如果一次查询结果返回的日志信息太多的话,日志量太大,一次查询的时间很长,而且一个屏幕无法展示所有日志信息,这时候需要分页展示了。如果查询条件携带了滚屏信息,则根据滚屏信息查询日志信息的下一页数据并展示,满足查询需求,如果查询条件没有携带滚屏信息,则会配置一次查询数据(一页数据)量是多少,同时会返回当前查询到多少页,总共多少页的结果。
87.请参阅图6,图6为本技术某些实施方式的基于k8s的flink任务日志的处理方法的流程示意图,基于k8s的flink任务日志的处理方法还包括步骤:
88.05:为flink任务定义预定的namespace;及
89.06:设置k8s pod的命名规则。
90.为flink任务指定特定的namespace,与日志相关的设计主要是规范pod name的命名,生成特定文件名开头的容器日志文件,便于后续通过fluented应用采集到日志文件的相关信息。
91.请参阅图7,图7为本技术某些实施方式的基于k8s的flink任务日志的处理装置10,flink任务日志的处理装置10包括任务提交模块11、任务监听模块12、日志采集模块13及日志展示模块14。其中,任务提交模块11可用于实施步骤01,即,任务提交模块11可用于为flink任务角色关联任务标识;任务监听模块12可用于实施步骤02,即,任务监听模块12可用于监听flink任务对应的k8s容器的状态信息,存储flink任务角色的任务标识;日志采集模块13可用于实施步骤03,即,日志采集模块13可用于收集并存储flink任务在k8s容器中的日志信息;日志展示模块14可用于实施步骤04,即,日志展示模块14可用于查询与任务标识关联的flink任务角色的日志信息。
92.请继续参阅图7,在某些实施方式中,日志采集模块13在实施步骤03:收集并存储flink任务在k8s容器中的日志信息时,具体可用于实施步骤031、032及033,即,日志采集模块13可用于创建基于k8s的fluented应用;在k8s的任一节点均启动fluented应用,并收集k8s容器的运行日志;及将收集的k8s容器的运行日志存储到elasticsearch。
93.请继续参阅图7,在某些实施方式中,日志采集模块13在实施步骤031:创建基于k8s的fluented应用时,具体可用于实施步骤0311、0312、0313,即,日志采集模块13可用于采集源source配置;增加k8s元数据记录的过滤器配置;及增加fluented应用采集的数据输出配置。
94.请继续参阅图7,在某些实施方式中,日志展示模块14在实施步骤04:查询与任务标识关联的flink任务角色的日志信息时,具体可用于实施步骤041、042及043,即,日志展示模块14可用于构建查询条件,查询条件包括任务标识;调用elasticsearch引擎查询与任务标识关联的flink任务角色的日志信息;及对日志信息进行拼装并展示。
95.请继续参阅图7,在某些实施方式中,日志展示模块14在实施步骤043:对日志信息进行拼装并展示时,具体可用于实施步骤0431、0432及0433,即,日志展示模块14可用于判断查询条件是否携带滚屏信息;若是,根据滚屏信息查询日志信息的下一页数据并展示;及若否,配置数据展示大小,并依据数据展示大小展示日志信息。
96.请继续参阅图7,在某些实施方式中,任务提交模块11还可用于实施步骤05及06,即,任务提交模块11可用于为flink任务定义预定的namespace;及设置k8s pod的命名规则。
97.需要说明的是,flink任务日志的处理装置10实施本技术任一实施方式的flink任务日志的处理方法时的实施细节及所达到的效果,可以参考上述对flink任务日志的处理方法的描述,在此不再赘述。
98.此外,请参阅图8,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一实施方式所述的flink任务日志的处理方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd-rom、和磁光盘)、rom(read-only memory,只读存储器)、ram(random access memory,随即存储器)、eprom(erasableprogrammable read-only memory,可擦写可编程只读存储器)、eeprom(electricallyerasable programmable read-only memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
99.本技术方法实施例的内容均适用于本存储介质实施例,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同,具体请参见方法实施例中的说明,在此不再赘述。
100.此外,请参阅图9,本技术实施例还提供了一种计算机设备,本实施例所述的计算机设备可以是服务器、个人计算机以及网络设备等设备。所述计算机设备包括一个或多个处理器、存储器、以及一个或多个计算机程序。其中一个或多个计算机程序被存储在存储器中并被配置为由一个或多个处理器执行。一个或多个计算机程序配置用于执行以上任一实施方式所述的flink任务日志的处理方法。
101.在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结
构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
102.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
103.尽管上面已经示出和描述了本技术的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施方式进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1