一种动态更改Spark用户配置的方法、装置及其系统与流程

文档序号:23802699发布日期:2021-02-03 06:39阅读:75来源:国知局
一种动态更改Spark用户配置的方法、装置及其系统与流程
一种动态更改spark用户配置的方法、装置及其系统
技术领域
[0001]
本发明涉及spark任务配置的技术领域,具体涉及一种动态更改spark用户配置的方法、装置及其系统。


背景技术:

[0002]
目前互联网领域的多个业务中均涉及到大数据的处理,例如广告、报表、推荐系统等业务,在上述业务中需要利用大数据做相应的数据分析、个性化推荐等操作。现有大数据的处理过程中涉及到的计算量极大,此种情况下采用了spark计算引擎进行大数据处理。在spark由driver和executor两个节点进行数据处理。其中,driver是spark的驱动器节点,用于执行spark任务中的main方法,负责实际代码的执行工作。executor为spark的执行器节点,负责在spark作业中运行具体任务,任务之间相互独立。
[0003]
目前,在spark任务提交后,都先启动driver,然后driver向集群管理器注册应用程序,之后集群管理器根据此任务的配置文件分配executor并启动,然后driver等待资源满足,执行main函数。在任务执行过程中往往会出现需要修改配置信息的情况,现有技术中大多通过修改代码中的配置后重新编译发布到集群中执行或将配置信息存放到预先指定的数据库中,然后定时reload配置信息。上述方式不是需要修改代码就是需要构建数据库,导致修改效率低下,进而降低了spark任务的执行效率。


技术实现要素:

[0004]
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种动态更改spark用户配置的方法、装置及其系统。
[0005]
为实现以上目的,本发明采用如下技术方案:
[0006]
一种动态更改spark用户配置的方法,所述方法应用于driver驱动器,所述方法包括:
[0007]
利用预设restful接口接收用户发送的最新配置信息;
[0008]
利用spark内的预设广播变量广播所述最新配置信息,使执行任务中的所有executor执行器获取所述最新配置信息进行配置信息的更改。
[0009]
可选的,还包括:
[0010]
根据预设条件启动所述预设restful接口。
[0011]
可选的,所述预设restful接口为http形式。
[0012]
一种动态更改spark用户配置的装置,包括:
[0013]
最新配置信息获取模块,用于利用预设restful接口接收用户发送的最新配置信息;
[0014]
最新配置信息广播模块,用于利用spark内的预设广播变量广播所述最新配置信息,使执行任务中的所有executor执行器获取所述最新配置信息进行配置信息的更改。
[0015]
一种动态更改spark用户配置的方法,所述方法应用于执行任务中的executor执
行器,所述方法包括:
[0016]
获取预设广播变量中的最新配置信息;所述最新配置信息由driver驱动器通过预设restful接口接收;
[0017]
根据所述最新配置信息更改自身任务中对应的配置信息。
[0018]
可选的,所述根据所述最新配置信息更改自身任务中对应的配置信息,包括:
[0019]
获取所述最新配置信息中的配置变量名称和配置变量赋值;
[0020]
根据所述配置变量名称确定自身任务中对应的待更改配置变量;
[0021]
将所述配置变量赋值更新自身任务中所述待更改配置变量对应的赋值。
[0022]
一种动态更改spark用户配置的装置,包括:
[0023]
最新配置信息接收模块,用于获取预设广播变量中的最新配置信息;所述最新配置信息由driver驱动器通过预设restful接口接收;
[0024]
配置信息更改模块,用于根据所述最新配置信息更改自身任务中对应的配置信息。
[0025]
可选的,所述配置信息更改模块,包括:
[0026]
配置变量信息获取单元,用于获取所述最新配置信息中的配置变量名称和配置变量赋值;
[0027]
待更改变量确定单元,用于根据所述配置变量名称确定自身任务中对应的待更改配置变量;
[0028]
变量赋值更改单元,用于将所述配置变量赋值更新自身任务中所述待更改配置变量对应的赋值。
[0029]
一种动态更改spark用户配置的系统,包括:
[0030]
driver驱动器、预设restful接口和多个executor执行器;
[0031]
所述driver驱动器与所述预设restful接口通信连接,所述driver驱动器用于执行上述所述的动态更改spark用户配置的方法;
[0032]
所述executor执行器用于执行上述所述的动态更改spark用户配置的方法。
[0033]
可选的,还包括:用于广播最新配置信息的预设广播变量。
[0034]
本申请提供的技术方案可以包括以下有益效果:
[0035]
一种动态更改spark用户配置的方法,所述方法应用于driver驱动器,所述方法包括:利用预设restful接口接收用户发送的最新配置信息;利用spark内的预设广播变量广播所述最新配置信息,使执行任务中的所有executor执行器获取所述最新配置信息进行配置信息的更改。本方法中driver驱动器通过预设restful接口接收用户发送的最新配置信息,然后将该最新配置信息经过预设广播变量进行广播,广播后所有的executor执行器均会接收到该广播信息,尤其是执行任务的executor执行器,进而executor执行器根据该广播信息中的最新配置信息进行对应配置信息的更改,上述方法中通过预设restful接口接收用户发送的最新配置信息,将该最新配置信息进行广播后实时更改executor执行器任务中对应的配置信息,以此实现更改运行中任务的配置信息,避免了修改代码或重新打包发布任务的操作,极大地提高了spark任务的配置信息的更改效率。
附图说明
[0036]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]
图1是本发明一实施例提供的动态更改spark用户配置的方法流程图;
[0038]
图2是本发明另一实施例提供的动态更改spark用户配置的方法流程图;
[0039]
图3是本发明一实施例提供的动态更改spark用户配置的装置模块图;
[0040]
图4是本发明另一实施例提供的动态更改spark用户配置的装置模块图;
[0041]
图5是本发明一实施例提供的动态更改spark用户配置的系统结构图。
具体实施方式
[0042]
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
[0043]
spark是一种通用的大数据计算引擎,常用于实时计算或离线计算。对于spark实时计算任务,一经发布,需7*24小时不间断的持续计算。在spark任务运行过程中,不能实时修改当前任务的配置信息等,为了能够在spark任务运行过程中进行配置信息的更改现提供以下技术方案,具体如下。
[0044]
以driver驱动器为例进行说明,图1是本发明一实施例提供的动态更改spark用户配置的方法流程图。参见图1,一种动态更改spark用户配置的方法,所述方法应用于driver驱动器,所述方法包括:
[0045]
步骤101:利用预设restful接口接收用户发送的最新配置信息。本申请中的restful接口是一种接口的风格,可以是http形式的。通过这种方式,可以使外界具有与该任务的交互能力。通俗的讲,就是外界调用了这个任务提供的接口,可以动态干预内部的一些运行情况或数据。因此driver驱动器通过单独的线程,启动一个微型的预设restful接口可接收用户发送的最新配置信息。
[0046]
步骤102:利用spark内的预设广播变量广播所述最新配置信息,使执行任务中的所有executor执行器获取所述最新配置信息进行配置信息的更改。spark内的广播变量可将最新配置信息广播出去,后续所有的executor执行器就可以从广播变量中获取最新的配置信息,然后executor执行器根据该最新配置信息更改任务中旧的配置信息,以此实现动态改变spark任务的行为。
[0047]
更进一步地,在此基础上还包括:根据预设条件启动所述预设restful接口。当用户需要对spark任务中的配置信息进行修改时,driver驱动器启动restful接口服务,即预设restful接口,根据此接口接收用户的修改信息。
[0048]
上述方法中本申请可在任意时刻通过预设restful接口接收用户更改后的配置信息,然后通过广播变量将新的配置信息广播出去,executor执行器从广播变量中获取新的配置信息,然后根据该配置信息更改当前运行中任务对应的配置信息。本申请中通过预设
restful接口可实时接收用户的最新配置信息,利用广播变量使executor执行器接收到最新配置信息,进而在任务执行过程中更改对应的配置信息,实现动态改变spark任务的行为,此过程中无需修改代码,无需数据库,无需重新打包发布任务,操作方便快速,极大地提高了spark任务的用户配置信息的修改效率。
[0049]
对应于本发明实施例提供的一种动态更改spark用户配置的方法,本发明实施例还提供一种动态更改spark用户配置的装置。请参见下文实施例。
[0050]
图3是本发明一实施例提供的动态更改spark用户配置的装置模块图。参见图3,一种动态更改spark用户配置的装置,包括:
[0051]
最新配置信息获取模块301,用于利用预设restful接口接收用户发送的最新配置信息;
[0052]
最新配置信息广播模块302,用于利用spark内的预设广播变量广播所述最新配置信息,使执行任务中的所有executor执行器获取所述最新配置信息进行配置信息的更改。
[0053]
上述装置通过内置restful接口服务实现用户最新配置的获取与配置的广播,可在任务运行中动态修改spark任务的用户配置,无需修改代码与配置信息,无需重新打包发布,使得运行中的spark任务具备更强大的灵活性。
[0054]
更详细地,为了更全面的介绍本申请中用户配置信息的更改方法,现以executor执行器角度进行介绍。
[0055]
图2是本发明另一实施例提供的动态更改spark用户配置的方法流程图。参见图2,一种动态更改spark用户配置的方法,所述方法包括:
[0056]
步骤201:获取预设广播变量中的最新配置信息;最新配置信息由driver驱动器通过预设restful接口接收。配置信息包括配置变量名称key和配置变量赋值value。
[0057]
步骤202:获取最新配置信息中的配置变量名称和配置变量赋值。executor执行器获取到最新配置信息后,分析该信息,得到该信息中的最新配置信息的key和value。
[0058]
步骤203:根据配置变量名称确定自身任务中对应的待更改配置变量。根据最新配置信息中的key检索当前执行任务中的所有的key。
[0059]
步骤204:将配置变量赋值更新自身任务中待更改配置变量对应的赋值。根据步骤203检索出来的所有的key,将最新配置信息中的value赋值给对应的key,以此实现配置信息的更改。
[0060]
上述实施例中executor执行器通过对最新配置信息进行分析,根据配置信息中的key得到对应的赋值value,进而将当前执行任务中的key的赋值更改为最新配置信息中的value,以此实现动态改变spark任务的行为,此过程中无需修改任务代码,无需重新打包发布任务,在任务运行中即可实现配置信息的更改,极大地提高了spark任务的灵活性。
[0061]
同时,在上述方法实施例的基础上,本申请中还公开了对应的装置实施例,具体如下:
[0062]
图4是本发明另一实施例提供的动态更改spark用户配置的装置模块图。参见图4,一种动态更改spark用户配置的装置,包括:
[0063]
最新配置信息接收模块401,用于获取预设广播变量中的最新配置信息;所述最新配置信息由driver驱动器通过预设restful接口接收;
[0064]
配置信息更改模块402,用于根据所述最新配置信息更改自身任务中对应的配置
信息。
[0065]
具体的,配置信息更改模块402包括:
[0066]
配置变量信息获取单元4021,用于获取所述最新配置信息中的配置变量名称和配置变量赋值;
[0067]
待更改变量确定单元4022,用于根据所述配置变量名称确定自身任务中对应的待更改配置变量;
[0068]
变量赋值更改单元4023,用于将所述配置变量赋值更新自身任务中所述待更改配置变量对应的赋值。
[0069]
上述装置中通过广播变量中的最新配置信息动态改变运行中任务的配置信息,以此实现动态改变spark任务的行为,提高了spark任务的适应性。
[0070]
为了更详细地介绍本申请中配置信息的更改方法,先举例进行介绍,具体如下:
[0071]
用户需要对当前运行中spark任务中的配置变量name进行更改,当前任务中的name的赋值为“张三”,用户需要将“张三”更改为“李四”。此时,用户通过客户端输入更改后的配置信息“name=李四”并通过预设restful接口将“name=李四”发送至driver驱动器,driver驱动器通过预设restful接口接收“name=李四”信息,然后通过spark中的广播变量将“name=李四”广播出去,此时spark中的所有的executor执行器均会接收到广播变量的广播信息,并对广播信息进行分析,确定需要进行修改的是配置信息name,且修改后的name赋值为李四,然后executor执行器对自身运行任务进行检索,将自身任务中的所有name的配置信息找到,然后将所有的“name=张三”,修改为“name=李四”,然后根据修改果配置信息的指令运行,若executor执行器的当前任务中没有配置信息name,则无需修改继续运行代码即可。
[0072]
为了更清楚地介绍实现本发明实施例的硬件系统,对应于本发明实施例提供的一种动态更改spark用户配置的方法,本发明实施例还提供一种动态更改spark用户配置的系统。请参见下文实施例。
[0073]
图5是本发明一实施例提供的动态更改spark用户配置的系统结构图。参见图5,一种动态更改spark用户配置的系统,包括:
[0074]
driver驱动器502、预设restful接口501和多个executor执行器503;
[0075]
所述driver驱动器502与所述预设restful接口501通信连接,所述driver驱动器502用于执行上述所述的动态更改spark用户配置的方法;
[0076]
所述executor执行器503用于执行上述所述的动态更改spark用户配置的方法。其中,driver驱动器502通过广播变量将最新配置信息广播出去,使executor执行器503能够获取最新配置信息,进而实现spark任务的动态更改。
[0077]
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
[0078]
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
[0079]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部
分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0080]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0081]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0082]
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0083]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0084]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0085]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1